为什么要将版本号添加到CSS文件路径?

use*_*585 38 css

我注意到有些网站将版本号(特别是)放在CSS文件路径中.例如:

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />
Run Code Online (Sandbox Code Playgroud)

放置版本号的主要目的是什么?如果目的是记住上次更新CSS文件的时间,那么不应该在CSS文件中添加版本号作为注释吗?

avi*_*ldg 52

来自http://html5boilerplate.com/docs/Version-Control-with-Cachebusting/:

什么是?v = 1"'?v = 1'是带有Cachebusting的JavaScript/CSS版本控制

为什么需要缓存JavaScript CSS?网页设计越来越丰富,这意味着页面中有更多的脚本和样式表.页面的首次访问者可能必须发出多个HTTP请求,但通过使用Expires标头,您可以使这些组件可缓存.这避免了后续页面视图上不必要的HTTP请求.Expires头文件最常用于图像,但它们应该用于所有组件,包括脚本,样式表等.

HTML5 Boilerplate如何处理JavaScript CSS缓存?HTML5 Boilerplate附带服务器配置文件:.htacess,web.config和nginx.conf.这些文件告诉服务器添加JavaScript CSS缓存控件.

什么时候需要使用cachebusting的版本控制?传统上,如果您使用远期的Expires标头,则必须在组件更改时更改组件的文件名.

如何使用cachebusting?如果您更新JavaScript或CSS,只需将"?v = 1"更新为"?v = 2","?v = 3"...这会欺骗浏览器认为您正在尝试加载新文件,因此,解决缓存问题.

  • 您可以使用PHP动态执行此操作,强制它在保存时更改版本号.下面是WordPress的示例.`<link rel ="stylesheet"href ="<?php bloginfo('stylesheet_url'); echo'?v ='.filemtime(get_stylesheet_directory().'/ style.css');?>"type ="text/css"media ="屏幕,投影"/>` (13认同)

use*_*882 7

它是为了确保您拥有当前版本.如果您更改网站并保留以前的名称,浏览器可能不会注意到更改并使用其缓存中的旧CSS.如果添加版本,浏览器将下载新样式表.