我在VS10 Dev服务器下运行了一个ASP.NET站点。我希望某些静态内容文件能够使用长的max-age缓存指令,但似乎无法使其正常工作。
我在web.config中有这个:
<system.webServer>
<caching enabled="true" enableKernelCache="true">
</caching>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
在要缓存的内容文件夹中
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge"
cacheControlMaxAge="30.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
但它也不起作用,它始终用于Cache-Control:private
那么,是否支持这种staticContent配置?如果没有,任何解决方法?如果是这样,我错过了什么?
我接受所有请求的标题:
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 23 Feb 2012 20:47:56 GMT
Cache-Control: private
Content-Type: application/octet-stream
Content-Length: 1043
Connection: Close
答案 0 :(得分:1)
我解决了这个问题!在Web.config中,将身份验证部分打开到FormsAuthentication。
这非常有帮助。我通常不会发表评论,但在这种情况下,我认为这会对其他人有所帮助。在我的情况下,缓存控件设置为私有,我无法修改它。这个模糊的答案是我打开了身份验证,当时我不需要或不想要它。我会说从搜索引擎获得提示需要更长的时间,也许这个文本会有所帮助。
答案 1 :(得分:0)
我解决了这个问题!在Web.config中,将身份验证部分打开到FormsAuthentication。