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



我正在将一个全新的网站重新设计部署到现有域上。我将在上午 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 添加到每个文件中。 而且由于您的文件已经缓存,我认为这无论如何都不会很有效。 我会在服务器级别查看选项。 大多数主机都可以选择禁用或刷新缓存。 这是你最好的选择!

相关内容

  • 没有找到相关文章

最新更新