2013-10-03 123 views
0

在檢查頁面速度時,Google Page速度建議我「利用瀏覽器緩存」。正如我在.config文件中使用此代碼在我的MVC應用程序中啓用了緩存。如何在ASP.NET MVC中緩存外部靜態內容

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

在此之後,緩存靜態內容這來自我自己的域名被緩存,但它是工作。

但是,來自外部域的靜態資源沒有被緩存。 例如: mydomain.com/content/scripts/somescript.js - >被緩存 http://widget.uservoice.com/ha3YmZucx5RAYmq2cS9qw.js - >未被緩存

谷歌仍然建議我去「槓桿瀏覽器緩存」出於這個原因。

如何讓我的應用程序能夠緩存來自外部域的靜態資源?

回答

2

您無法從第三方域緩存靜態資源;這不是事情的方式。如果第三方資源沒有被緩存,這意味着第三方要麼直接選擇不使用緩存(它可能需要始終保持最新才能正常工作),或者忽略了實施緩存。您唯一能做的就是向第三方提交一張票並要求他們修正。

+0

謝謝克里斯。我剛剛在Google Page Speed上試用了smashingmagazine.com,它建議只緩存一個資源,它是一個.js文件。但是,在頁面源上,我找到了來自外部域的5-6資源。如果我無法緩存它們,是否至少有一些方法可以加快它們的速度並防止被谷歌如smashingmagazine所提示? – Zafar

+2

每個網絡服務器(爲了便於討論,我們將直接關聯到一個域),必須實現自己的緩存方案。所以,這不是它是否是第三方域的問題;這是第三方域是否實施緩存的問題。就像我在我的回答中所說的那樣,有時候有很好的理由,而不是實現資源的緩存。它只取決於,但最終它不是緩存就是不存在。你無論如何都無能爲力。有可能Page Speed可能會讓你忽略資源或什麼的,你只需要檢查一下。 –

相關問題