【问题标题】:When deploying firebase files, index.html is not being updated部署 firebase 文件时,未更新 index.html
【发布时间】:2018-06-26 10:42:05
【问题描述】:

当我在我的 firebase 文件夹中打开一个包含所有依赖项和文件等的终端时,我在终端中输入“firebase deploy”,一切正常,功能和规则都更新了,但 index.html 的更改不会推送到网站。有没有我可以检查的设置或可以让它再次推送的设置?

【问题讨论】:

  • 你还没有说你是如何检查更改的。您是否有可能在浏览器中看到该页面的缓存版本?
  • 此 SO 帖子可能会让您感兴趣:stackoverflow.com/questions/48589821/…
  • 我清除所有cookies或缓存文件,然后加载我的网站,然后在chrome中查看源代码,可以看到没有发生任何变化。
  • Firebase 默认缓存为 1 小时。如果您没有更改,Firebase 可能会在您部署旧的 index.html 文件后继续为您提供一个小时。

标签: javascript firebase terminal firebase-hosting firebase-cli


【解决方案1】:

假设除了功能部署之外,您还托管 index.html:folder 中的 index.html 文件是否在 "hosting": { 下指定,而不是在被忽略的文件中?

您也可以运行 firebase deploy --only hosting 来仅部署与托管相关的更改。

由于文件位于您的根目录中,您需要将其设置为 firebase 的公共目录

{
  "hosting": {
    "public": "/",
    ...
  }
}

【讨论】:

  • This is my firebase.json我的index.html文件直接存放在文件夹中(没有子文件夹什么的)
  • 将默认值修改为以 root 身份托管的问题是,您的 firestore.rules 和一堆其他非公开文件将在网络上可见,除非您进入并将它们排除在外被托管。 ...基本上 - 不要这样做。这是不必要的过度复杂化。 ...保持简单。
  • 我必须同意@RonRoyston。我认为您会帮自己一个忙,将该索引放在一个单独的文件夹中,这对于单个文件来说可能听起来很愚蠢。我的回答只是试图尽可能接近问题。
【解决方案2】:

将您的 index.html 文件放在 /public 文件夹中,这就是 Firebase 托管上提供的内容。这就是你想要的方式。您不想在根目录下发布文件。

【讨论】:

  • 我以为有 2 个不同的 index.html 文件,一个在公共文件中,一个在 root 文件中。我弄错了吗?我的主要角色应该是公开的吗?
  • 当您在 IDE 中创建 new HTML5 project 时,root 中的那个被放在那里(很可能)。不,您只需要/public 中的index.html。请注意,在子文件夹中添加额外的index.html 是完全有效的,例如/public/articles/index.html 将显示在//your-domain/articles.html 但不,根目录中的那个可以根据您的firebase 配置文件被销毁/删除。跨度>
猜你喜欢
  • 2016-03-15
  • 2021-03-22
  • 2011-02-16
  • 2016-01-18
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多