首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >expires标头的智能解决方案

expires标头的智能解决方案
EN

Stack Overflow用户
提问于 2011-05-05 16:32:31
回答 3查看 1.9K关注 0票数 1

我们希望为使用过的图像、css和javascript设置expire头来提高页面速度,但我们知道在修改css或js脚本时会出现缓存问题。

是否可以在加载xhtml的文件中添加meta或其他标记,以告知浏览器刷新每个元素,而不管在现有图像、css或js上设置了什么缓存?

EN

回答 3

Stack Overflow用户

发布于 2011-05-05 16:47:14

你可能想做的是对你的静态内容进行版本控制。假设您有一个main.css文件,那么您可以通过将其重命名为main_0.css (只是一个示例)来对其进行版本控制,然后将缓存过期时间设置为一年。如果您需要更新main.css,只需增加版本号并更新您的引用即可。然后所有客户端都将获得最新版本。

有几个解决方案可以为您完成此版本控制,但这是基本原则。

我总是发现这些资源在有缓存相关的问题时非常有用:

  1. http://code.google.com/intl/no/speed/page-speed/docs/caching.html
  2. http://code.google.com/intl/no/speed/page-speed/docs/filters.html

希望这能有所帮助。

编辑

下面是一个版本控制解决方案(mod_pagespeed),它完成了我上面解释的工作:

  1. http://code.google.com/intl/no/speed/page-speed/docs/filter-cache-extend.html
票数 2
EN

Stack Overflow用户

发布于 2011-05-05 16:52:15

据我所知,没有这样的捷径。

即使是这样--又有什么意义呢?发送这样的报头将首先违背未来到期报头的目的。

在设置过期标头时,您需要向元素添加某种类型的资产版本控制,例如<link rel="stylesheet" href="css/style.css?v=2">

更改资产的路径也会达到同样的目的。

是的,这是一个麻烦。但是cache invalidation is a hard problem,真的没有简单的方法可以绕过它。

票数 2
EN

Stack Overflow用户

发布于 2011-05-05 16:47:33

是否可以在加载xhtml的文件中添加meta或其他标记,以告知浏览器刷新每个元素,而不管在现有图像、css或js上设置了什么缓存?

据我所知没有。

我们想要为使用的图像,css和javascript设置过期标头,以提高页面速度

在我看来,这是一件好事。

,但我们知道在修改css或js脚本时会出现缓存问题。

如果您正在对CSS或JS进行重大更改,那么无论如何您都应该准备好这些更改。通过将新的CSS和JS放在不同的路径上来管理这些更改,并在进行更改时更改HTML中的引用。这使您可以:

  • 即时推出/返回
  • 通过动态生成这些references
  • web日志进行选择性的推出现在可提供清晰的审核跟踪,以便跟踪有关CSS和JS
  • 短期缓存的任何问题的错误
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5894772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档