如何破解缓存,以便用户获得所有新的静态文件(例如style.CSS,main.js)?

问题描述 投票:0回答:3

我正在将一个全新的网站重新设计到现有域上。我将在凌晨12点用新文件手动替换所有文件,但是如何确保用户不会获得旧网站的缓存版本(从而破坏所有内容)?

另外,如何更改站点地图以便更换谷歌上的旧站点地图?

javascript caching deployment web-deployment continuous-deployment
3个回答
0
投票

破解缓存有几种方法。

最简单的方法是为该类型的文件添加过期标头。这可以在Apache配置中完成,如下所示:

<FilesMatch "\.(gif|jpg|js|css)$">
    ExpiresActive On
    ExpiresDefault "access plus 10 years"
</FilesMatch>

您还可以在URL中为每个资源使用新的查询字符串值。

另一个选项是文件名中更新的版本号,该版本号将路由到更新文件。

您需要等待Google的网络抓取工具为变更编制索引。这不是你可以控制的东西。


0
投票

有几种方法,您可以使用webpack等工具或gulp插件,grunt将生成的文件名添加hash

所以文件名就是这样的

someabc.RandomAlphanumeric.js

其中RandomAlphanumeric随机生成哈希

如果你没有使用任何构建工具,你可以像文件一样使用

<script type="text/javascript" src="/folder/js/someFile.js?v1"></script>

请注意?的使用。通常附带时间戳和文件名


0
投票

如果您要重新部署整个站点,我怀疑您要为每个文件添加?v1。由于您的文件已经缓存,我认为无论如何都不会非常有效。我会查看服务器级别的选项。大多数主机都可以选择禁用或刷新缓存。这是你最好的选择!

© www.soinside.com 2019 - 2024. All rights reserved.