Javascript 如何让浏览器缓存https站点的css和js文件?

Javascript 如何让浏览器缓存https站点的css和js文件?,javascript,asp.net,css,browser-cache,Javascript,Asp.net,Css,Browser Cache,我使用https开发了一个托管在IIS 8.5中的ASP.NET web应用程序。我使用fiddler跟踪请求和响应,发现css和js文件没有被浏览器缓存(IE 11)。对于网站的每个页面,将再次下载这些文件。以下是请求和响应。我的问题是为什么回复说“缓存控制:无缓存”,我需要在IIS中设置任何内容吗 GET https://***.com/Scripts/jquery-ui-1.8.20.js HTTP/1.1 Accept: application/javascript, */*;q=0.8

我使用https开发了一个托管在IIS 8.5中的ASP.NET web应用程序。我使用fiddler跟踪请求和响应,发现css和js文件没有被浏览器缓存(IE 11)。对于网站的每个页面,将再次下载这些文件。以下是请求和响应。我的问题是为什么回复说“缓存控制:无缓存”,我需要在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

根据我的理解,
缓存控制:无缓存
并不意味着浏览器没有完全缓存,但它告诉浏览器缓存内容,浏览器应该使用Etag或日期标题查询缓存内容是否有任何更改。

在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>


好吧,你告诉它每次都要
获取
。。。服务器端+客户端代码彼此不相关,因此会产生很长的AJAX和PHP请求。@NicholasHazel如何设置服务器端或客户端,以便在修改css和javascript时可以下载它们?你可以看到缓存控制:这里没有缓存,但我希望它被私下缓存。我真的不确定<代码>服务器端代码不是我的专长,我无法想象一种方法可以在本地实现它。很抱歉:-(我发现虽然响应头中的缓存控件显示no cache,但当我再次下载页面时,我会得到一个状态代码304,因为该页面未被浏览器修改和缓存。同意,但只想将缓存控件设置为:public,以便中介也可以缓存静态文件。