【问题标题】:How to force a browser to show the latest changes to a CSS file?如何强制浏览器显示 CSS 文件的最新更改?
【发布时间】:2010-12-07 13:15:12
【问题描述】:

我对 PHP 站点上的 CSS 文件进行了一些更改。

在我按住 CTRL 键并单击浏览器的 REFRESH 按钮之前,这些更改不会显示在我对其进行测试的任何浏览器中。

这意味着大多数用户不会看到我所做的更改。

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

【问题讨论】:

    标签: php css caching


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      另外,强制取消缓存的常见解决方案是对 CSS 文件名进行版本控制(Rails 在内部执行此操作)。例如,style.css 变为 style-10162009.css

      【讨论】:

        【解决方案3】:

        你不能。

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

        1. 使用某种形式的`css_filename.css?version_number`
        2. 或者,为新文件使用另一个名称
        3. 或者,照常做,使用 ctrl+F5

        【讨论】:

        • 缓存最终会更新到新文件,只是不会立即更新。
        • 嗯,是的;但我认为它有必要立即而不是最终这样做。 =)
        猜你喜欢
        • 2018-02-20
        • 2010-09-10
        • 2010-09-11
        • 2014-03-07
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 2012-07-13
        相关资源
        最近更新 更多