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 广告库
Firebase CLI 部署错误:“部署到 Node.js 10 以下的运行时现在在 Firebase CLI 中被禁用。”