asp.net - 如何按年龄设置 *.js 和 *.css 缓存过期时间? web.config 中的 <clientCache> 设置不起作用

标签 asp.net caching

当我尝试使用 PageSpeed Insights 时,我开始产生这个想法。并看到了这条消息:

Google PageSpeed says I need to leverage browser cachine

我查看了可用的论坛帖子并尝试过以下操作:

<system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
    </staticContent>
  </system.webServer>

看起来很简单,但是当我在本地服务器和远程服务器上进行验证时,我没有看到任何证据表明缓存设置被 Chrome 开发者工具卡住了。

The Chrome Developer tool showed no evidence that the web.config code worked

经过更多研究,我发现更好的方法是在 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/

相关文章:

c# - "dd/mm/yyyy"格式的 CompareValidator

java - 缓存搜索结果实现

java - Google Guava Cache - 在运行时更改驱逐超时值

Magento EE 1.11.1,移动主题的整页缓存问题?

Java max文件缓存解决方案

javascript - 从javascript访问页面变量

c# - 在 C# 中将 MS Access 颜色代码转换为十六进制

asp.net - 如何在一个 IIS 网站下部署 2 个独立的 ASP.NET 解决方案

c# - 使用 HttpClient.GetAsync 调用 Web API 似乎挂起

c# - 在本地 SQL Server 存储表的缓存拷贝