3

CSS有人可以通过在最后加上问号来解释在浏览器中访问的区别?以及为什么新的 CSS 对网站没有任何影响。

我已经CSS在 Web 服务器上部署了一个新的,但它没有产生任何影响。

我尝试在浏览器中打开 URL,如下所示:

www.mysite.com/styles/css/main.css

它会加载旧版本的CSS.

然后我尝试如下,它加载了新版本的 CSS。

www.mysite.com/styles/css/main.css?

做完这一切之后。新的 CSS 更改不会影响网站。它仍然显示旧设计。

亲切的问候

4

2 回答 2

4

您需要在 ? 然后在更改 CSS 时更改它。正在发生的事情是浏览器将缓存任何在特定时期内没有变化的东西,它通过检查文件名来做到这一点。所以main.css?仍然是 main.css 吗?问号后面的任何内容都是查询字符串,通常用于将数据传递到特定文件。在这种情况下,它仅用于更改文件字符串,因此浏览器每次更改时都会更新它,而不会影响文件本身。

有几种方法可以处理这个问题,第一种是手动更改版本,如果你有一个头文件,这可能是最简单的想法,就像在总是加载相同头数据的模板系统中一样。

<link rel="stylesheet" type="text/css" href="assets/css/main.css?ver1/>

然后在下一次更改:

<link rel="stylesheet" type="text/css" href="assets/css/main.css?ver2/>

如果您希望自动执行此操作,您可以在 css 行中添加一些 PHP 脚本,如下所示:

 <link rel="stylesheet" type="text/css" href="assets/css/main.css?time=<?php echo filemtime('./assets/css/main.css');?>" />

这实质上是添加一个值,每次保存文件时都会更改并导致类似的结果,下次我保存文件时 time= value 将更改:

<link rel="stylesheet" type="text/css" href="http://localhost/refficient/trunk/assets/css/main.css?time=1350305706" />
于 2012-10-17T14:10:30.100 回答
-2

浏览器缓存是什么原因,添加?不推荐使用css之后。打开您的托管空间并清除缓存和线程池。

于 2015-06-10T08:24:34.680 回答