【问题标题】:css file cache dot being cleared after new version uploaded to server新版本上传到服务器后,css文件缓存点被清除
【发布时间】:2011-05-14 23:53:33
【问题描述】:

你好,我有个小问题

我上传了我的网站的新版本。 一些用户抱怨他们看到我更改的某些页面非常非常错误。

无论如何,刷新后他们都觉得很好。

我认为这是因为我的 css 文件在较早的时候被他们缓存了... 为什么第一次加载时浏览器不自己下载css文件?..

他应该知道css文件改变了不是他吗?

提前致谢

【问题讨论】:

    标签: asp.net css caching


    【解决方案1】:

    @UpTheCreek 的方法可以正常工作。但是你可以通过只更改调用而不更改文件名来节省一些麻烦。

    screen.css?v=12
    

    这也会强制重新加载,但只需要您更改调用。

    【讨论】:

    • 我真的很喜欢这个解决方案——它很聪明
    【解决方案2】:

    他应该知道css文件改变了 他不是吗?

    不一定。如果您的 css 文件是从服务器发送的带有 max-age 指令和/或过期日期在很远的将来,则指示浏览器不要对您的资源发出条件请求(请参阅http://developer.yahoo.com/blogs/ydn/posts/2007/05/high_performanc_2/),以便他们考虑资源缓存仍然有效。

    在这种情况下,为了强制执行新请求,您可能需要重命名文件或附加随机查询字符串,例如 file.css?848372034,或者更好的是,添加版本注释,例如 file.css?v=1

    【讨论】:

      【解决方案3】:

      如果您安装了 Web 开发人员工具栏(用于 Firefox 或 IE),您可以禁用缓存。我在开发网站时使用它。它使您不必在每次进行次要编辑时重命名 CSS。

      【讨论】:

        【解决方案4】:

        如果您使用的是 Apache,请尝试将其添加到您的根 .htaccess 中:

        <FilesMatch ".(css|jpg|gif|ico|jpeg|png|html)$"> 
        ExpiresActive On 
        Header set Expires "Mon, 22 Nov 2010 06:00:00 GMT" 
        </FilesMatch> [L]
        

        只包括你不想缓存的文件类型,例如:

        <FilesMatch ".(css|js)$">
        

        如果您知道何时要更改文件,请设置一个未来日期 - 如果不定期刷新这些文件,您的网站会更快。

        如果您不设置过期日期,浏览器会按其使用期限缓存这些文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-07-11
          • 2021-07-14
          • 2018-11-29
          • 1970-01-01
          • 2020-04-01
          • 2018-04-18
          • 2019-04-25
          相关资源
          最近更新 更多