Php 如何强制浏览器显示CSS文件的最新更改?

Php 如何强制浏览器显示CSS文件的最新更改?,php,css,caching,Php,Css,Caching,我在一个PHP站点的CSS文件上做了一些更改 在按住CTRL键并单击浏览器的刷新按钮之前,这些更改不会显示在我测试它的任何浏览器中 这意味着大多数用户看起来不会像我所做的更改 如何强制浏览器立即显示对CSS文件的更改(而不重命名CSS文件)?这取决于您的web服务器。Apache可以设置为配置给定文件的最大缓存时间,我非常确定IIS也可以这样做 或者,强制取消缓存的常见解决方案是对CSS文件名进行版本设置(在内部执行)。例如,style.css变为style-10162009.css您不能 如果

我在一个PHP站点的CSS文件上做了一些更改

在按住CTRL键并单击浏览器的刷新按钮之前,这些更改不会显示在我测试它的任何浏览器中

这意味着大多数用户看起来不会像我所做的更改


如何强制浏览器立即显示对CSS文件的更改(而不重命名CSS文件)?

这取决于您的web服务器。Apache可以设置为配置给定文件的最大缓存时间,我非常确定IIS也可以这样做

或者,强制取消缓存的常见解决方案是对CSS文件名进行版本设置(在内部执行)。例如,
style.css
变为
style-10162009.css

您不能

如果新CSS文件与旧CSS文件同名,浏览器将使用缓存的文件。这意味着您必须:

  • 使用某种形式的“css\u filename.css”版本号`
  • 或者,为新文件使用另一个名称
  • 或者,按您正在做的操作,并使用ctrl+F5

  • 链接样式表时,添加一个唯一的字符串作为查询字符串。这里有一个例子

    <link href="style.css?<?=filemtime("style.css")?>" rel="stylesheet" type="text/css" />
    

    缓存最终会更新到新文件,只是不会马上更新;但我认为它有必要立即这样做,而不是最终这样做