尽管已经缓存了favicon,但它们仍在获取。

13
我有一个收藏夹图标列表。

list of favicons

我正在使用服务工作器来缓存所有文件,即PWA,我的文件如下所示

"/",
"/index.html",
"/favicon/apple-touch-icon.png",
"/favicon/favicon-32x32.png",
"/favicon/favicon-16x16.png",
"/favicon/site.webmanifest",
"/favicon/safari-pinned-tab.svg",
"/favicon/favicon.ico",
"/favicon/browserconfig.xml",
"/app.css",
"/app.js",

问题出在我的两个非常特定的文件上,

files that won't cache

这两个文件分别是 /favicon/favicon-32x32.png/favicon/favicon-16x16.png。非常感谢您的协助。


你解决过这个问题吗?我也遇到了完全相同的问题。 - Doug Allrich
没有,最终我决定放弃,因为它们是小文件,所以不会有太大的区别。 - lulliezy
3个回答

11

9
这可能是一个回归问题,或者从一开始就没有完全解决。新的错误报告:Issue 969033: Favicons are being requested on page reload - zenofewords

0

从网络请求的截图中,我无法看到所有其他请求的SW缓存是如何工作的。我只能看到一个304。这并不能说明SW正常工作。如果您可以提供完整的网络选项卡截图(可能隐藏文件名?),这将有助于更好地理解问题。

在一般调试中检查服务工作者:

1)确保Chrome开发工具下的“应用程序”中的“服务工作者”与您的域名以绿色显示。

2)如果它不是绿色的,则可能未正确配置SW或构建过程缺少所需的清单文件。

3)SW不会在HTTP上工作。确保您的URL通过HTTPS提供,并具有有效的证书。

4)确保您的Web服务器支持服务工作者。像Angular(ng serve)中使用的服务器一样,某些服务器不支持服务工作者。一个很好的选择是使用http-server。

Install ->  npm install http-server -g

在您的构建文件夹中运行此命令 ->
http-server -o -i 172.22.49.205 -p 8080 -S

5) 如果URL是带有证书的HTTPS,并且服务工作者在开发工具中显示为绿色,则最后的机会可能是您要缓存的文件未正确配置,但这似乎不是本例的情况。加载页面后,您可以断开网络连接或停止Web服务器,并检查Chrome是否仍在从缓存中加载页面。如果没有,则不仅仅是您的收藏夹图标出了问题,而是缓存出现了问题。


在网络选项卡中,除了两个文件外,所有其他文件都是从SW获取的,而资产只是从服务器获取数据的API。在应用程序选项卡中,SW处于活动状态,所以你说的清单文件是哪些? - lulliezy
你需要提供Chrome Dev工具->应用程序->清单和服务工作者的截图。如果没有这两个,任何人都无法了解你的PWA的状态。你还没有确认是否使用了带证书的HTTPS,停止了Web服务器并从缓存中加载了应用程序(如果SW按照你所说的工作)。 - Anand

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接