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