我对预先缓存根网址的正确方法感到有点困惑,即" /"。
如果我使用webpack-plugin-workbox生成precacheManifest,它不会包含" /"的条目。 " /index.html"当然包括在内。现在,如果用户加载应用程序,预先启动,并且用户尝试加载没有网络连接的根URL,则站点不会加载,因为预先缓存对根URL没有任何作用。如果用户尝试加载" /index.html"一切都很好。但是用户不会加载该网址,他们会加载根网址。那么如何缓存呢?
我是否应该使用 navigateFallback:index.html 选项,根据我的理解,在连接丢失和缓存未命中的情况下,将用户重定向到提供的网址?< / p>
或者我应该使用 templatedUrls:{&#34; /&#34;:[&#34; index.html&#34; ]} 选项,根据我的理解,根据index.html生成哈希,然后缓存&#34; /&#34;基于哈希值的变化?
或者我应该使用一些完全不同的策略?
万分感谢!
答案 0 :(得分:2)
默认情况下,如果以/
结尾的网址出现初始预缓存错误,Workbox将再次检查其预先缓存的文件列表,以查看是否匹配相同的网址以/index.html
结尾。
您可以阅读有关此内容的更多信息,以及如何自定义默认行为in the module guide for workbox-precaching
。
所以...事情应该像你描述的那样工作而不需要做任何事情。 (您需要确保在服务工作者激活后进行测试并控制当前窗口客户端。)
如果您不看到该行为,则听起来好像Workbox中可能存在错误,最好在issue tracker中详细了解更多详情