我刚刚针对我们的网站运行了Google 的 Page Speed应用程序,其中一项建议是利用浏览器缓存。扩展这一点揭示了以下内容:
以下可缓存资源的新鲜度生命周期较短:为以下资源指定至少一周后的到期时间:
<
一长串图像>
<
一些javascript文件>
如何延长特定图像的“新鲜寿命”?
这是一个在IIS7.5上运行的ASP.NET项目
我刚刚针对我们的网站运行了Google 的 Page Speed应用程序,其中一项建议是利用浏览器缓存。扩展这一点揭示了以下内容:
以下可缓存资源的新鲜度生命周期较短:为以下资源指定至少一周后的到期时间:
<
一长串图像>
<
一些javascript文件>
如何延长特定图像的“新鲜寿命”?
这是一个在IIS7.5上运行的ASP.NET项目
我在本网站的其他地方找到了我的问题的答案。哇!(不知道为什么我第一次发布这个时它没有出现,但没关系,我最终到达了那里。)
对于那些感兴趣的人,答案是这样的(由Gabriel McAdams发布):
您在 IIS 中执行此操作。如果您使用的是 IIS 7,则可以在 web.config 中添加标头。它位于 system.webServer 部分。
<staticContent>
<clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>
这将导致所有静态内容的过期 HTTP 标头设置为 2020 年。静态内容是指不通过 ASP.NET 引擎提供的任何内容,例如图像、脚本文件和样式表。
或者要使用相对到期,请使用以下命令:
<staticContent>
<clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
这将导致所有静态内容的过期 HTTP 标头设置为 2 天。
您必须将 Expires Header 添加到静态内容中,包括图像、html、js、css 文件。您可以system.webServer
使用 IIS7 在 web.config 部分轻松添加 expires 标头:
<静态内容> <clientCache httpExpires="2020 年 5 月 1 日星期一 05:00:00 GMT" cacheControlMode="UseExpires" /> </静态内容>
您通常想要的是缓存所有资产(css、js 和图像),html 文件将具有缓存破坏链接,以便您仍然可以更新图像。
为了使其正常工作,html 文件不能是staticContent
. 为 html 文件添加新的处理程序可防止它们被永久缓存。
<staticContent>
<clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>
<handlers>
<add
name="HtmlHandler"
path="*.html"
verb="*"
type="System.Web.Handlers"
preCondition="integratedMode"
/>
</handlers>