相关疑难解决方法(0)

Firebase托管 - 强制浏览器重置新部署的缓存?

我有一个使用create-react-app构建的网站,并在Firebase Hosting上托管.如何指定浏览器缓存需要在新部署后更新,并且理想情况下仅适用于自上次部署以来已更改的页面,资产和样式表?

有没有办法访问部署ID并在标头中包含该(或任何其他唯一标识符),以便浏览器可以与本地存储或缓存中的内容进行比较,并确定是否需要进行硬刷新?我查看了Firebase部署以及完整配置文档,但没有提及如何访问托管元数据,如上次部署时间.

Cache-Control值设置为max-age=[any number]似乎并不理想,因为它忽略了下一次部署何时发生(除非有常规计划,否则可能无法开始).

deployment caching firebase-hosting

15
推荐指数
2
解决办法
8031
查看次数

部署的反应Web应用程序需要硬刷新

使用create-react-app(v1.0.13)启动.每当我更新源和重新部署用户需要硬刷新以获取新内容.我在index.html中包含了非缓存头:

<meta http-equiv="Cache-Control" content="no-store" />

并关闭了提供的服务人员.在部署之前,还要在build文件夹中更改.js文件名(以及index.html中的引用).

reactjs create-react-app

8
推荐指数
1
解决办法
2431
查看次数

如何增加角度6中的js和CSS文件的缓存寿命?

我一直在尝试使用灯塔报告来优化我的网页。

性能诊断工具之一说,可以增加我的静态文件的缓存寿命。

在报告中所指出的文件是main.jspolyfills.jsruntime.jsstyles.css。据我了解,这些是我网页的主要内容。我当时在考虑使用角度服务工作者增加缓存。但是我找不到任何办法。

我发现增加缓存时间最接近的是角度服务工作者数据组。数据组支持缓存配置。

cacheConfig: {
    maxSize: number;
    maxAge: string;
    timeout?: string;
    strategy?: 'freshness' | 'performance';
  };
Run Code Online (Sandbox Code Playgroud)

但我不知道如何对AssetGroups执行相同操作。据我了解,js和css文件属于AssetGroups。

这是灯塔报告屏幕截图。

在此处输入图片说明

我正在工作的网页是margvel.com,我在github上有代码。

我还使用Firebase进行托管。是否拥有或可以更改Firebase上的缓存策略?

如何延长这些文件的缓存寿命?

optimization caching lighthouse angular

5
推荐指数
1
解决办法
236
查看次数

根 URL www.domain.com 的元标记不会更新

我正在创建一个部署在 firebase 上的 Angular8 通用应用程序。引用了这个网站Angular universal with firebase

当我在本地使用 Express 服务器运行并提供应用程序时,所有路由都将加载更新的元标记。当我在 firebase 上部署应用程序时,一切正常,但根路径上的元标记没有更新。它们对于所有其他路线都工作得非常好。当我打开检查元素时,元标记也会更新。我添加了一些配置,以便不在 firebase.json How to Prevent caching for the index.html of an SPA上缓存 html 文件,并将 server.ts 文件中的“cache”值设置为“No-cache”,如下所示

app.get('*', (req, res) => {
  res.set('Cache-Control', 'public, max-age=0, s-maxage=0, no-cache');
  res.render('index', { req });
});
Run Code Online (Sandbox Code Playgroud)

但对我来说没有任何作用。请帮忙。

firebase-hosting google-cloud-functions angular-universal angular angular8

1
推荐指数
1
解决办法
1152
查看次数