【发布时间】:2018-12-23 10:48:45
【问题描述】:
这应该是直截了当的,但显然不是。
我正在尝试避免将 service-worker 文件缓存在 Apache 服务器上。
文件是sw.js,它应该放在/public_html/ 上。
我尝试了以下<FilesMatch ??? > 的几种组合,例如"sw\.js$",但均未成功。
<FilesMatch "^(sw\.js)$">
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 "Wed, 08 Jan 1975 05:00:00 GMT"
</ifModule>
</FilesMatch>
根据to this,如果我运行
`curl -I -L https://www.soeezauto.com/sw.js | grep cache-control`
我应该收到cache-control: no-cache,但我没有。
【问题讨论】:
-
你的
<FilesMatch>指令应该匹配,但由于你只匹配一个文件,你可以简单地使用<Files "sw.js">- 这里不需要正则表达式。尝试设置自定义测试标头,以防这些缓存标头被覆盖...Header set X-TEST "test". -
这在我的 Apache 上运行良好。使用
grep -iF 'cache-control'查看 -
@DocRoot。我也尝试过使用
-
@anubhava。它确实有效。请详细说明原因(-if 标志有什么作用)并将其作为答案发布,以便我接受。
标签: regex apache .htaccess caching service-worker