我注意到一些网站把版本号(特别是)放在CSS文件路径中。例如:为什么要将版本号添加到CSS文件路径?
<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />
把版本号的主要目的是什么?如果目的是记住CSS文件上次更新的时间,那么不应该在CSS文件中添加版本号作为注释吗?
我注意到一些网站把版本号(特别是)放在CSS文件路径中。例如:为什么要将版本号添加到CSS文件路径?
<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />
把版本号的主要目的是什么?如果目的是记住CSS文件上次更新的时间,那么不应该在CSS文件中添加版本号作为注释吗?
从http://html5boilerplate.com/docs/Version-Control-with-Cachebusting/:
什么是V = 1" 是 JavaScript的/ CSS版本控制缓存无效化
为什么你需要缓存的JavaScript CSS网页 'V = 1?'?页面设计变得更加丰富和丰富,这意味着更多的脚本和样式表在 页面中。首次访问您的页面可能需要创建多个HTTP 请求,但通过使用Expires标头,您可以将这些组件设置为可缓存的 。这避免了不必要的在随后的页面 视图中发出ssary HTTP请求。过期标头最常用于图像,但它们应该用于所有组件,包括脚本,样式表等。
HTML5 Boilerplate如何处理JavaScript CSS缓存? HTML5 Boilerplate带有服务器配置文件:.htacess, web.config和nginx.conf。这些文件告诉服务器添加 JavaScript CSS缓存控件。
什么时候需要使用版本控制和cachebusting? 传统上,如果您使用远期过期标头,则必须在组件更改时更改组件的文件名。
如何使用cachebusting?如果你更新你的JavaScript或CSS,只需要 将“?v = 1”更新为“?v = 2”,“?v = 3”......这将欺骗浏览器 认为您正在尝试加载新文件,因此,解决缓存 的问题。
你可以动态地使用PHP强制它在保存时更改版本号。以下是WordPress的一个例子。 '<链路的rel = “样式表的” href = “
你能指导我如何添加版本变量。我的意思是它将如何工作。谢谢 –
它确保您拥有最新版本。如果您像以前一样更改网站并留下名称,那么浏览器可能不会注意到这一更改,并使用其缓存中的旧CSS。如果您添加版本,浏览器将下载新的样式表。
这是为了优化浏览器缓存。您可以为css文件设置标题永不过期,以便浏览器也可以从缓存中获取它。
但是,如果你这样做,你会在更改css文件时遇到问题,因为一些浏览器可能不会注意到这种变化。通过添加/更改版本参数,它是“另一个”请求,因此它不会被从cahe中取出(但是在新版本被缓存之后,它将从那里取出以节省带宽/请求数量,直到版本再次改变)。
详细的解释可以在html5boilerplate.com
被foudn我的知识是相当多了关于网站的日期,但存储在“HREF”参数变量是通过HTTP浏览器接收。在URL重写中使用通常的技巧,实际上可以有一个任意的脚本,在调用时会产生CSS输出。这个输出可能会有所不同,具体取决于参数。
如果设置缓存,以在未来添加?v=2
将让服务器知道这是一个新的文件,但你不会需要给它一个唯一的名字远到期(节省您的全局搜索和替换)
HTM5 boilerplate也包含在那里项目。
看看这个视频也http://www.youtube.com/watch?v=oDlsOyPKUTM&feature=player_embedded
其中一个原因可能是绕过文件缓存。同名的CSS文件可以被服务器缓存,并且如果新版本有布局变化,可能会导致显示不良。
的可能的复制[什么是追加“?V = 1”的链接和脚本标记CSS和Javascript的网址吗?](http://stackoverflow.com/questions/3466989/what-does-appending-v- 1-to-css-and-javascript-urls-in-link-and-script-tags-do) – zanetu