如何在ASP.NET MVC中缓存外部静态内容

如何在ASP.NET MVC中缓存外部静态内容,asp.net,asp.net-mvc,caching,browser-cache,google-pagespeed,Asp.net,Asp.net Mvc,Caching,Browser Cache,Google Pagespeed,在检查页面速度时,谷歌页面速度建议我“利用浏览器缓存”。当我在.config文件中使用此代码在MVC应用程序中启用缓存时 <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00"/> 在这之后,对来自我自己的域的静态内容的缓存正在被缓存,但它仍在工作 但是,不会缓存来自外部域的静态资源。 例如: 正在缓存mydomain.com/content/scripts/somescript.js-

在检查页面速度时,谷歌页面速度建议我“利用浏览器缓存”。当我在.config文件中使用此代码在MVC应用程序中启用缓存时

<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00"/>

在这之后,对来自我自己的域的静态内容的缓存正在被缓存,但它仍在工作

但是,不会缓存来自外部域的静态资源。 例如: 正在缓存mydomain.com/content/scripts/somescript.js-->文件 -->没有被缓存

出于这个原因,谷歌仍然建议我“利用浏览器缓存”


如何使我的应用程序能够缓存来自外部域的静态资源?

您不能缓存来自第三方域的静态资源;事情不是这样的。如果没有缓存第三方资源,这意味着第三方要么直接选择不使用缓存(可能需要始终保持最新才能正常工作),要么忽略了实现缓存。对此,您唯一能做的就是向第三方提交一个票证,并要求他们修复它。

您不能缓存来自第三方域的静态资源;事情不是这样的。如果没有缓存第三方资源,这意味着第三方要么直接选择不使用缓存(可能需要始终保持最新才能正常工作),要么忽略了实现缓存。对此,您唯一能做的就是向第三方提交一张罚单,并要求他们修复它。

谢谢Chris。我刚刚在Google Page Speed上尝试过smashingmagazine.com,它建议只缓存一个资源,即.js文件。然而,在页面源代码中,我找到了来自外部域的5-6个资源。如果我不能缓存它们,是否至少有一些方法可以让我更快地加载它们,并防止像smashingmagazine这样的google建议使用它们?每个Web服务器(为了便于讨论,我们将直接关联到一个域)都必须实现自己的缓存方案。所以,这不是一个是否是第三方域名的问题;问题在于第三方域是否实现了缓存。正如我在回答中所说,有时有很好的理由不为资源实现缓存。这取决于具体情况,但最终它要么被缓存,要么不被缓存。不管怎样,你都无能为力。页面速度可能会让您忽略资源或其他内容,您只需检查一下即可。谢谢Chris。我刚刚在Google Page Speed上尝试过smashingmagazine.com,它建议只缓存一个资源,即.js文件。然而,在页面源代码中,我找到了来自外部域的5-6个资源。如果我不能缓存它们,是否至少有一些方法可以让我更快地加载它们,并防止像smashingmagazine这样的google建议使用它们?每个Web服务器(为了便于讨论,我们将直接关联到一个域)都必须实现自己的缓存方案。所以,这不是一个是否是第三方域名的问题;问题在于第三方域是否实现了缓存。正如我在回答中所说,有时有很好的理由不为资源实现缓存。这取决于具体情况,但最终它要么被缓存,要么不被缓存。不管怎样,你都无能为力。页面速度可能会让您忽略资源或其他内容,您只需进行检查。