asp.net - 无法让 ASP.NET/IIS 使用自定义缓存控制设置来提供 .js 文件
问题描述
在我的 ASP.NET MVC 5 应用程序中,我使用了clientCache
web.config 属性来自定义静态文件的缓存行为。
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="private,max-age-300" setEtag="true" />
</staticContent>
</system.webServer>
这适用于 .css 和图像文件,但我在浏览器的开发工具中注意到 .js 文件没有获得其他文件类型获得的自定义cache-control
和标头。etag
此外,我尝试添加自定义处理程序,但据我所知,它没有任何效果。
<handlers>
<add name="StaticHandler_js" verb="*" path="*.js" type="System.Web.StaticFileHandler" />
</handlers>
关于如何让 ASP.NET/IIS 以与其他静态文件相同的方式处理 .js 文件的任何想法?
解决方案
我能够通过添加特定于路径的配置来清除所有处理程序并仅将静态文件默认值添加到这些路径来解决此问题。这是一个不完美的解决方案,因为它基于文件路径,而不是文件类型,但因为我所有的 JavaScript 文件都在这个单一文件夹中,所以它可以完成工作。
<location path="Scripts">
<system.webServer>
<handlers>
<clear />
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read"/>
</handlers>
</system.webServer>
</location>
如果有人有更好的不依赖文件路径的解决方案,我很乐意接受它作为解决方案。
推荐阅读
- function - 描述非特定类型的 Haskell 函数的类型签名的方法是什么?
- javascript - 如何让 Discord Bot (Javascript) 对反应做出反应
- jenkins - 如何在詹金斯中定义多分支管道作业之间的上下游依赖关系?
- javascript - 在 javascript 中使用 fetch 时访问标头
- r - 在多个换行符中查找匹配项
- python - 如何更正此错误:ValueError: logits and labels must have the same shape ((None, 2) vs (None, 1))
- node.js - NodeJs - RSS 和外部内存显着增加,堆内存增加缓慢。可能是什么原因?
- ruby-on-rails - 如何在 Rails 中组织公司模型中的用户角色
- c# - Unity AddForce 到播放器 onTriggerEnter
- performance - 使用 reducer 和 mapper 无法在 hive 中加快查询速度