2

我对预缓存根 URL 的正确方法(即“/”)有点困惑。

如果我使用 webpack-plugin-workbox 生成 precacheManifest,它不包含“/”条目。“/index.html”当然包括在内。现在,如果用户加载应用程序,预缓存启动,并且用户尝试在没有网络连接的情况下加载根 URL,则该站点将不会加载,因为预缓存对根 URL 没有任何作用。如果用户尝试加载“/index.html”,一切正常。但是用户不加载那个 url,他们加载的是根 url。那么如何缓存呢?

我是否应该使用navigateFallback: index.html选项,据我了解,该选项会将用户重定向到提供的 url,以防连接丢失和缓存未命中?

或者我应该使用templatedUrls: { "/": [ "index.html" ] }选项,据我了解,该选项基于 index.html 生成一个哈希,然后根据该哈希值的变化缓存“/”?

还是我应该使用一些完全不同的策略?

太感谢了!

4

1 回答 1

4

默认情况下,当一个//index.html.

您可以workbox-precaching.

所以......事情应该按照你的描述工作,而不需要你做任何事情。(您需要确保在服务工作者激活并控制当前窗口客户端之后进行测试。)

如果您没有看到这种行为,听起来 Workbox 中可能存在错误,最好在问题跟踪器中跟进更多详细信息。

于 2018-04-11T20:05:24.383 回答