【问题标题】:How to let the browser cache css and js files for a https site?如何让浏览器缓存 https 站点的 css 和 js 文件?
【发布时间】:2014-01-24 02:39:09
【问题描述】:

我使用 https 开发了一个托管在 IIS 8.5 中的 ASP.NET Web 应用程序。我使用fiddler跟踪请求和响应,发现css和js文件没有被浏览器缓存(IE 11)。对于网站的每个页面,这些文件将被再次下载。这是请求和响应。我的问题是为什么回复说“Cache-Control: no-cache”,我需要在 IIS 中设置什么吗?

GET https://***.com/Scripts/jquery-ui-1.8.20.js HTTP/1.1
Accept: application/javascript, */*;q=0.8
Referer: https://***.com/
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: ***.com
Connection: Keep-Alive
Cookie: __AntiXsrfToken=000b8dfbde4b40a68a19a2ee3fc1195a; ASP.NET_SessionId=qdhotusxrcchnaowhagzol1y


HTTP/1.1 200 OK
Cache-Control: no-cache
Transfer-Encoding: chunked
Content-Type: application/javascript
Content-Encoding: gzip
Last-Modified: Tue, 16 Jul 2013 09:41:03 GMT
Accept-Ranges: bytes
ETag: "e74a9b96882ce1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
X-UA-Compatible: IE=edge
Date: Fri, 24 Jan 2014 02:28:24 GMT

【问题讨论】:

  • 嗯,你每次都告诉GET...服务器端 + 客户端代码彼此不相关,因此 AJAX 和 PHP 请求很长。跨度>
  • @NicholasHazel 如何设置服务器端或客户端,以便修改时可以下载css和javascript?您在这里看到了 cache-control:no-cache,但我希望它被私下缓存。
  • 我真的不确定。 server-side 代码不是我的专长,我想不出有什么方法可以做到这一点locally。对不起:-(
  • 我发现虽然响应头中的缓存控件说没有缓存,但是当我再次下载页面时,我会得到一个状态码304,因为页面没有被浏览器修改和缓存。

标签: javascript asp.net css browser-cache


【解决方案1】:

据我了解,Cache-Control: no-cache 并不意味着浏览器没有完全缓存,而是告诉浏览器缓存内容,浏览器应该使用 Etag 或 Date 标头查询缓存内容是否有任何变化。

【讨论】:

  • 同意,只是想设置cache-control:public,这样中介也可以缓存静态文件。
【解决方案2】:

在 web.config 中或通过 IIS 中的 UI 为静态文件设置缓存,对于要缓存的静态文件夹,将其添加到配置文件中即可。

<configuration>
    <system.webServer>
        <staticContent>
            <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1000.00:00:00" />
        </staticContent>
        <httpProtocol>
            <customHeaders>
                <add name="Cache-Control" value="public" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

【讨论】:

    猜你喜欢
    • 2011-09-12
    • 2021-07-29
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多