Firebase 部署不更新 JS 文件

Posted

技术标签:

【中文标题】Firebase 部署不更新 JS 文件【英文标题】:Firebase deploy not updating JS file 【发布时间】:2016-03-15 13:23:23 【问题描述】:

我部署了一个 Firebase 应用,并对项目中的一个 javascript 文件进行了更改。我从项目目录中重新执行了firebase deploy,但是站点上的文件没有更新。当我部署时,账户管理显示发生了更新,但文件保持不变。我做错了什么吗?我该如何解决/解决这个问题?任何帮助将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

如果部署成功,这可能是缓存问题。

您可以尝试按 cmd+shift+R(在 Windows 上为 ctrl+shift+R)来硬刷新缓存。

尝试直接访问文件的 URL (https://<my-app>.firebapp.com/app.js),然后进行硬刷新。您应该会看到它更新为您在本地拥有的内容。

使用 Chrome,您可以在 DevTools 打开时通过选择“网络”选项卡中的“禁用缓存”选项来禁用缓存。

【讨论】:

@SA__,您有兴趣使用 Firebase 托管吗?如果是这样,我可以提供帮助。 谢谢!这行得通。我有点尴尬,我自己没有想到这个...... :) @DavidEast 虽然这有助于调试/开发。我的一些用户看到的是旧版本。如何强制他们的浏览器加载新版本?谢谢! @user3660665 你在寻求帮助时做对了。 4 年后,当我犯了同样的错误时,它给了我极大的帮助。因为没有你的问题,我就找不到答案。所以谢谢。此外,很多屈辱就是有点谦虚——对灵魂有好处!让我们继续朝着完美的方向失败...... 如果问题出在客户身上,这不是正确的答案(不需要进行清理即可看到更改)。有人知道怎么解决吗?【参考方案2】:

确保在部署之前构建您所做的任何新更改。

例如,如果您有一个 Angular 2 应用程序并使用 Angular cli 类型 ng build,那么 firebase deploy

要清除缓存,请按 Ctr+F5 或更好地使用隐身模式进行开发。使用隐身模式强制重新加载适用于移动设备和桌面设备。

【讨论】:

对我来说同样的问题。使用 npm run-script build【参考方案3】:

刷新您的网络浏览器

在大多数 Windows 和 Linux 浏览器中: 按住 Ctrl 并按 F5。

在 Apple Safari 中: 按住 ⇧ Shift 并单击重新加载工具栏按钮。

在 Mac 版 Chrome 和 Firefox 中: 同时按住 ⌘ Cmd+⇧ Shift 并按 R。

希望对你有帮助

来源:https://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache

【讨论】:

【参考方案4】:

我有同样的问题,我确实清除了缓存和所有内容,但我仍然遇到同样的问题,然后运行

yarn build

然后我可以看到我的最新更改。

【讨论】:

天哪,我在问 WTF 是否发生在我的部署中。当然,它上传的是公共构建而不是我的开发代码...感谢您的展示。 @MaximilianoPoggio 没问题【参考方案5】:

嗯,我正在开发 PWA。我遇到了同样的问题,上面的步骤没有解决..所以我尝试了这个方法,发现很有帮助..

尝试删除 map.js 并重新运行 npm run build 两次。为什么两次??因为第一个会产生错误,但它也会重建 map.js 文件,该文件实际上对应于 .js 文件的更改。最后firebase deploy 应该为您提供您想要托管的工作站点。下面是我的项目文件的图像,其中包括要删除的文件的位置。

【讨论】:

【参考方案6】:

在隐身窗口中尝试相同的托管 URL,当我进入隐身窗口时它对我有用,因为我在同一个窗口中维护了 localhost 和域 URL。

试试吧,可能你也有问题,谢谢

【讨论】:

【参考方案7】:

关于 React(create-react-app)- 如果有人出于同样的原因来到这里: 我遇到了重新部署项目的问题。部署起初工作,但当我尝试重建(npm run build)和重新部署(firebase delpoy)时,我的网站显示了一个firebase错误页面(在使用ctrl + shift + r更新缓存后,如建议here)。经过长时间的检查,我意识到我应该将重写添加到我的 firebase.json,所以它看起来像这样:


  "database": 
    "rules": "database.rules.json"
  ,
  "hosting": 
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [ 
      "source": "**",
      "destination": "/index.html"
     ]
  ,
  "storage": 
    "rules": "storage.rules"
  

【讨论】:

【参考方案8】:

尝试重新安装firebase-tools 可能会很好 - 在遇到与您类似的问题后,我运行了npm i -g firebase-tools,它似乎修复了它。

【讨论】:

【参考方案9】:

为了不再忘记在部署之前build,我把它放在了我的package.json

"scripts": "build": "node build/build.js && firebase deploy"

这样我就不必记住它了。在部署方面尽可能实现自动化。

【讨论】:

【参考方案10】:

如果您使用 React 或 Vue,请不要忘记在运行命令 firebase deploy

之前运行构建命令,例如 npm run build

【讨论】:

firebase deploy 不是已经运行了npm run build 好吧,我们必须查一下,才能弄清楚 firebase deploy 在幕后做了什么。但就我而言,我们的更改在只运行该命令后并没有显示出来,就像主要问题所问的那样。【参考方案11】:

我在构建项目时遇到了类似的问题,硬重置缓存但没有任何效果。 然后我意识到我前面有层 cloudflare cdn,它正在提供缓存数据。所以如果你前面有CDN,开发的时候把它关掉吧。

【讨论】:

【参考方案12】:

另一种方法是删除 dist/ 文件夹并运行这些步骤,

    firebase 初始化 ng build --prod firebase 部署 再次。它对我有用。

【讨论】:

【参考方案13】:

我在使用 React 应用时遇到了同样的问题。

终于意识到我没有运行“npm run build”,因此构建文件夹中的所有内容都没有更新,这正是 Firebase 正在部署的。

【讨论】:

【参考方案14】:

我也有类似的问题。我正在使用 React.js 构建 Covid Tracker,我注意到我的代码中有一个错误。修复它后,我正在运行 firebase deploy 但它什么也没做。

长话短说,您需要在部署之前构建项目。运行npm run build 将为您的项目创建一个新的优化版本,然后firebase deploy 将继续更新您的网站。

【讨论】:

【参考方案15】:

我在firebase app上托管HUGO网站也有同样的问题,问题成功解决,可以参考一下。

首先需要在本地删除公共文件,然后才能重新建站使用

HUGO -D

现在重建公共文件。

然后再次部署。

Firebase deploy

我认为为什么firebase没有更新是你只更新内容,但它不能自动更新公共文件,你需要重新重建公共文件。

【讨论】:

以上是关于Firebase 部署不更新 JS 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何更新在 Firebase 托管中部署的 Flutter Web 版本

如何在 Firebase 托管上部署 next.js 应用程序?

修复更新后显示错误的 android studio Firebase 广告库

VS 代码中 Firebase 的代码完成?

Firebase:Vue.js:无法将存储与数据库连接

Firebase CLI 部署错误:“部署到 Node.js 10 以下的运行时现在在 Firebase CLI 中被禁用。”