TL; DR - 我希望服务器(IIS 8.5)返回304,而不是为CSS和JS包修改。
我无法让IIS 8.5兑现web.config中的clientCache设置。无论我做什么,我似乎都无法缓存静态内容。这是VS2013中的MVC5应用程序。我已将所有静态文件放在“Assets”文件夹中。
请求如下: http://someserver/AppName/Assets/mainjs?v=FNj_9ZPAbYVAQsyDo2F8XUnWv5NQpY4iX2RGu4NpJ5g1
<configuration> <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> </staticContent> </system.webServer> </configuration>
<staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" /> </staticContent>
<location path="Assets"> <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" /> </staticContent> </system.webServer> </location>
以下是我在IIS 8.5管理器中尝试过的内容。在默认网站/ TestApp下
我已经尝试了这些步骤,每个步骤都是自己的,所有这些步骤以及其他方式。无论如何,它都不会将max-age
值添加到Cache-Control。
对于其中的每一个,browswer都会返回200个CSS和JS包的响应。我无法让服务器缓存来自Assets文件夹的内容。
Cache-Control:private
Content-Encoding:gzip
Content-Length:22591
Content-Type:text/css; charset=utf-8
Date:Mon, 02 Feb 2015 21:49:49 GMT
Expires:Tue, 02 Feb 2016 21:49:49 GMT
Last-Modified:Mon, 02 Feb 2015 21:49:49 GMT
Persistent-Auth:true
Server:Microsoft-IIS/8.5
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
答案 0 :(得分:0)
检查捆绑包的各个文件。关闭优化后文件的样子是什么?注册Bundles后,请致电:
BundleTable.EnableOptimizations = (!HttpContext.Current.IsDebuggingEnabled);
OR
BundleTable.EnableOptimizations = false;
可能是每个文件都返回时未修改。在调试会话中刷新时状态是否会更改?