Yag*_*Yag 6 model-view-controller asp.net-mvc asp.net-mvc-3
我不确定我做错了什么,但尽管我尝试了一切,我似乎无法让客户端缓存我的静态资源.
在我的web.config中,我添加了以下条目:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
根据文档,这应该向客户端浏览器发送响应标头,让它知道我们希望将静态内容缓存30天.
如果我使用fiddler查看客户端正在接收的内容,看起来我的web.config添加将被完全忽略.
以下是小提琴手的报道:
Cache-Control: no-cache
Date: Mon, 05 Dec 2011 14:09:44 GMT
Expires: -1
Pragma: no-cache
Vary: Accept-Encoding
Run Code Online (Sandbox Code Playgroud)
我在IIS中没有任何标题覆盖这个,所以我不确定我错过了什么.任何帮助将不胜感激.
我破解了这个但是花了一段时间.你试图从服务器强制304s(没有变化).它与IIS版本不同.
通过在一个目录中拥有所有静态内容来实现最佳效果(例如content,您可以拥有/content/css /content/js etc)
然后你必须确保该目录下的所有内容都不会过期,比如30天.
IIS7
更容易.最简单的方法 - 添加web.config到上面提到的内容目录.这web.config将只有expires指令:
<system.webServer>
<staticContent>
<clientCache
cacheControlMaxAge="30.00:00:00"
cacheControlMode="UseMaxAge" />
</staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
IIS6
您需要操作元数据库.它不是IIS6中的XML,请按照此处的说明操作:IIS6 ETags配置数据库命令
我们使用了以上和简单观看的萤火虫节目304s通过.
| 归档时间: |
|
| 查看次数: |
4826 次 |
| 最近记录: |