我正在将一个全新的网站重新设计到现有域上。我将在凌晨12点用新文件手动替换所有文件,但是如何确保用户不会获得旧网站的缓存版本(从而破坏所有内容)?
另外,如何更改站点地图以便更换谷歌上的旧站点地图?
破解缓存有几种方法。
最简单的方法是为该类型的文件添加过期标头。这可以在Apache配置中完成,如下所示:
<FilesMatch "\.(gif|jpg|js|css)$">
ExpiresActive On
ExpiresDefault "access plus 10 years"
</FilesMatch>
您还可以在URL中为每个资源使用新的查询字符串值。
另一个选项是文件名中更新的版本号,该版本号将路由到更新文件。
您需要等待Google的网络抓取工具为变更编制索引。这不是你可以控制的东西。
有几种方法,您可以使用webpack等工具或gulp插件,grunt将生成的文件名添加hash
,
所以文件名就是这样的
someabc.RandomAlphanumeric.js
其中RandomAlphanumeric
随机生成哈希
如果你没有使用任何构建工具,你可以像文件一样使用
<script type="text/javascript" src="/folder/js/someFile.js?v1"></script>
请注意?
的使用。通常附带时间戳和文件名
如果您要重新部署整个站点,我怀疑您要为每个文件添加?v1。由于您的文件已经缓存,我认为无论如何都不会非常有效。我会查看服务器级别的选项。大多数主机都可以选择禁用或刷新缓存。这是你最好的选择!