1

查看网页设计师网站并查看他们的源代码,他们有一个指向他们的 css 文件的链接,如下所示:

他们如何将 style.css?v=30 放在样式表之后的查询并使其转到正确的文件,或者他们实际上将该文件命名为 style.css?v=30。

4

2 回答 2

1

实际上filename.ext?v=something是一种控制浏览器缓存过程的方法。每当您打开任何网页时,浏览器都会保存它的副本,我们称之为缓存。所以下次当你再次打开那个页面时,浏览器实际上并没有下载整个页面,它只是使用它的缓存副本来查看它。而且看起来您的网站比第一次打开得更快。
现在假设您正在使用一个名为 的 css 文件style.css,当有人第一次打开您的网页时,他的浏览器会下载style.css并制作一个缓存副本。现在让下次您再次打开该网页并且在该开发人员实际更改之前,style.css但由于您的浏览器不知道它,它只会显示相同的缓存副本并且您看不到新文件。
为了防止这件事,开发人员在文件名中添加了一个名为版本详细信息的字符串style.css?v=30,现在当您浏览器读取它时,它将与版本值一起缓存,但是下次您再次打开同一页面时,让开发人员更改了style.css,所以他将使用新版本值上传它style.css?v=234,现在浏览器检查并查看它是否是新值,浏览器会将其作为新文件读取,它将被下载并在您的视口中查看。

有几种防止浏览器缓存文件的方法,其中一种是在末尾添加随机版本字符串,您可以使用 php 命名的随机字符串生成函数<?php echo uniqid(); ?>从 php 或添加任何新值。另一种方法是在 .htaccess 文件中定义重写规则,如果您使用的是 apache 服务器,或者在 html head 中添加过期标头<meta name="expires" content="tue, 01 Jun 2010">

我真的希望你完全明白。

于 2013-10-31T00:26:36.190 回答
0

也许他们正在使用一些目录级配置,如 .htaccess 文件,将 style.css 重定向到生成 CSS 的 PHP 文件,该文件以某种方式利用查询。

于 2013-10-30T23:44:33.477 回答