【问题标题】:accessing the CSS in browser using question mark (?) in end最后使用问号 (?) 在浏览器中访问 CSS
【发布时间】:2012-10-07 19:10:29
【问题描述】:

谁能解释一下在浏览器中访问CSS的区别是什么,在最后加上问号?,以及为什么新的CSS对网站没有任何影响。

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

我尝试在浏览器中打开网址如下:

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

它会加载旧版本的CSS

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

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

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

亲切的问候

【问题讨论】:

  • 短期,用CTRL+F5让你的浏览器强制刷新所有内容。长期来看,修复服务器如何指示客户端缓存数据。
  • @Jon CTRL+F5 没有任何区别。我也手动清除了浏览器缓存。谢谢
  • @Jon 你能告诉我修复服务器指示客户端缓存数据的任何想法吗?谢谢

标签: css web-applications webserver


【解决方案1】:

您需要在 ? 之后添加一些内容然后在更改 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= 值将更改:

<link rel="stylesheet" type="text/css" href="http://localhost/refficient/trunk/assets/css/main.css?time=1350305706" />

【讨论】:

  • 您好,谢谢您的说明。有没有办法在浏览器中对其进行排序。我无权访问网站源。我只能更改 CSS。所以不能改变html。我试过 Ctrl+F5 但没有任何区别。
  • 如何访问 CSS 而不是 HTML?这里有些东西不对,因为 CTRL + F5 应该可以工作(但有时你必须连续点击几次)。
  • 因为网站是一个多品牌网站,并且运行在第三方公司的服务器上。我们只为他们提供 CSS 来根据我们的需要进行设计。所以我不能改变HTML。他们的服务器或我这边出了点问题。不知道它在哪里缓存 CSS。
  • 有没有机会让他们用我给你的 PHP 解决方案来更新它?他们诚实做事是有道理的。
  • @Hayer 您是否检查过键入 css 文件的 url 并查看浏览器中的内容?它包含您的更改吗?如果你在 linux 上,你也可以尝试 wget 命令
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    相关资源
    最近更新 更多