当我尝试使用 PageSpeed Insights 时,我开始产生这个想法。并看到了这条消息:
我查看了可用的论坛帖子并尝试过以下操作:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>
</system.webServer>
看起来很简单,但是当我在本地服务器和远程服务器上进行验证时,我没有看到任何证据表明缓存设置被 Chrome 开发者工具卡住了。
经过更多研究,我发现更好的方法是在 IIS 中执行此操作。然而,当我与 GoDaddy 技术支持人员交谈时,他们说 IIS 被锁定给像我这样的人,因为 IIS 的更改会影响每个人。所以 IIS 选项不适合我。
但是,如果这只是服务器的问题,那么我不会看到 web.config 方法在本地 Visual Studio 服务器上起作用吗?显然我错过了一些东西。
我这样做是完全错误的还是需要添加额外的一行?
我开始认为,由于 web.config 没有完成这项工作,并且 GoDaddy 不会进行任何 IIS 更改,Global.asax 中的某些内容是否可以完成这项工作? [不,我不能告诉我的客户更换服务器。]
最佳答案
有时,在处理 IIS 缓存时,mime 类型可能会有点麻烦。下面的代码为您提供了如何确保映射正确的基本示例。您不需要对每种 mime 类型都执行此操作,只需对某些类型执行此操作...
<staticContent>
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="text/javascript; charset=UTF-8" />
<!-- Caching-->
<clientCache cacheControlMode="UseExpires"
httpExpires="Tue, 22 Aug 2016 03:14:07 GMT" />
</staticContent>
上面的代码是否正确缓存了您的 JavaScript 文件?
另外,您是否尝试过回收您的应用程序池?有时,在更改生效之前可能需要回收服务器。
关于asp.net - 如何按年龄设置 *.js 和 *.css 缓存过期时间? web.config 中的 <clientCache> 设置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289868/