在我的 Main.js 文件中,我有以下代码:
import * as serviceWorker from './serviceWorker';
/*
some code
*/
ReactDOM.render(<Main />,document.getElementById('app'));
serviceWorker.register()
这个serviceWorker默认是从create-react-app操作创建的,但我必须从源代码复制它,因为我没有使用create-react-app创建应用程序。
serviceWorker 在/范围内查找“service-worker.js”文件。在以下行中:
const swUrl = `/service-worker.js`;
使用此配置,我可以缓存 service-worker.js 文件的 PrecacheConfig 变量中提到的所有内容,例如/js/app.js
当涉及到动态网址时,例如/myapp/{id}/test/
。我确信不应该对所有这些动态 url 进行预缓存,并且应该在用户访问页面时缓存它们,但是我在哪里以及如何缓存它们?
最佳答案
我建议使用 Workbox https://developers.google.com/web/tools/workbox管理您的 Service Worker 功能。使用 workbox.routing 模块 ( https://developers.google.com/web/tools/workbox/modules/workbox-routing ),您可以使用特定于您的应用程序的正则表达式来指定自定义兑现规则。
希望对您有帮助!
关于javascript - 如何在 Service Worker 中缓存动态 URL?和预缓存有关系吗?我正在使用 ReactJS 默认 serviceWorker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59893731/