我有一个网站,我在其中添加了一个CACHE MANIFEST文件。这是为了确保iOS中的全屏网络应用程序不会从缓存中获取内容。 (否则,它们似乎正确刷新HTML,但没有链接JavaScript或CSS。)在我的应用程序中,离线访问完全没用,所以我创建了清单以不缓存任何东西。这是它的样子:
CACHE MANIFEST
# Version 1.0
NETWORK:
*
这解决了我在iOS中的问题,但似乎搞乱了Chrome(40.0.2214.115米)。 Chrome始终坚持始终从缓存中获取我的基本html文件,即使打开了开发工具并且"禁用缓存"检查。如果我可以简单地删除/重命名缓存清单文件并刷新,则可以解决问题。 另外,我的基本HTML文件包含以下标题:
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
我在这里缺少什么吗?当我有一个显示 no 缓存的清单文件时,Chrome会执行更多缓存,这似乎很奇怪。
答案 0 :(得分:0)
如果在HTML文件中指定缓存清单,它将始终缓存到applicationCache,无论它是否指定了您发布的标头/元标记(请参阅此处Cache manifest caches network files)。
如果您想避免缓存JS和CSS文件,只需在web-app的根目录中使用.htaccess
文件即可。
例如,使用&#34; ExpireByType&#34;命令:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 0 seconds"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/plain "access plus 0 seconds"
ExpiresByType text/javascript "access plus 0 seconds"
ExpiresByType text/css "access plus 0 seconds"
ExpiresByType image/png "access plus 0 seconds"
ExpiresByType image/jpg "access plus 0 seconds"
ExpiresByType image/jpeg "access plus 0 seconds"
</IfModule>
此外,您可以添加以下行来完全禁用Web应用程序的缓存(请参阅此Disabling Caching with .htaccess):
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Mon, 1 Jan 2010 01:00:00 GMT"
</ifModule>
答案 1 :(得分:0)
此行为已在Chrome 41.0.2272.76 m中修复。它不再使用清单文件从我的站点的缓存中提取文件。