Dea*_*ean 37 xml iis iis-7 caching azure
有没有办法在我的ASP.NET应用程序中缓存单个javascript文件的缓存而不禁用应用程序中任何其他文件的缓存?
它在Azure中的IIS 7上运行,所以对我而言,我唯一的控制它的选项是在webserver标签内.
我目前使用folowwing配置,但这是禁用所有文件的缓存.
<modules runAllManagedModulesForAllRequests="true"/>
<staticContent>
<clientCache cacheControlMode="DisableCache"/>
</staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
我只是想禁用一个经常更改的单个javascript文件的缓存.
可能吗?
gdt*_*gdt 47
我偶然发现了这个问题; 您可以使用以下命令禁用特定文件上的缓存:
<configuration>
<location path="path/to/the/file">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
(注意路径是相对于web.config文件的)
或者,将单个文件放在它自己的目录中,并为该目录提供它自己的web.config,禁用其中的所有内容的缓存;
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Cache-Control" value="no-cache" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
[两者都在Windows 7上的IIS7.5上进行了测试,但您必须确认它在Azure上运行正常]
您将要查看System.WebServer/Caching类,您可以在其中将缓存配置文件应用于特定扩展.这将至少使您能够控制以.js结尾的所有Javascript文件.
<system.webServer>
...
<caching>
<add extension=".js" policy="DontCache" kernelCachePolicy="DontCache" />
</caching>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
这应该禁用来自云的进程和内核缓存的.js缓存.
我认为您可以在仅包含您的文件的文件夹中创建此web.config,它将仅在该文件夹级别禁用.js的缓存.老实说我自己也没试过,所以只是你可以测试的建议.
除此之外,请查看与缓存配置相关的IIS文档:
/缓存:http://www.iis.net/ConfigReference/system.webServer/caching
/缓存/配置文件:http://www.iis.net/ConfigReference/system.webServer/caching/profiles
/ Caching/Profiles/Add:http://www.iis.net/ConfigReference/system.webServer/caching/profiles/add
希望这一点,加上对这些配置标签的一些研究将有所帮助.
如果没有,我建议您考虑实现一个可以插入IIS请求管道的自定义HTTP模块,它可以将缓存控制过滤到该特定文件
**它的价值仅在于IIS的行为,并且在Azure内外不会有所不同,因此您可以轻松地测试本地,而无需使用Dev结构或Azure测试.
看起来上面的答案缺少"个人资料"标签
<caching>
<profiles>
<add extension=".js" kernelCachePolicy="DontCache" policy="DontCache"/>
</profiles>
</caching>
Run Code Online (Sandbox Code Playgroud)
您可以通过在该文件夹中包含一个 web.config 来删除文件夹级别的扩展,从而禁用文件夹级别的输出缓存
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<caching>
<profiles>
<remove extension=".js" />
</profiles>
</caching>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
现在此文件夹将不会为以 .js 结尾的文件启用输出缓存
| 归档时间: |
|
| 查看次数: |
35075 次 |
| 最近记录: |