2013-03-06 67 views
0

是否有可能強制ASP.NET生成來自不同Web應用程序的WebResource.axd/ScriptResource.axd URL的相同散列部分?相同的WebResource.axd/ScriptResource.axd適用於多個應用程序和CDN

例如我有MyControls.dll已嵌入資源「control.js」,它在兩個網站中使用:www.site1.com,www.site2.com(MyControls.dll存在於兩個站點的bin文件夾中)。 對於每個網站,ASP.NET都會爲「control.js」生成具有不同散列值的WebResource.axd URL。

問題:我可以強制某種方式,它會成爲兩個網站相同的資源URL嗎?

爲什麼我需要這個....?我爲這兩個網站的資源使用「共享」CDN。它適用於除WebResource.axd/ScriptResource.axd之外的所有資源。當從www.site2.com請求資源時,CDN嘗試從www.site1.com檢索緩存資源,但由於從www.site2.com到達的散列值不同,因此CDN無法加載和緩存資源。

回答

0

你可以用asp:ScriptManager的以「鬆綁」的資源 - 多的代理緩存更好,因爲他們不傾向於與查詢字符串緩存的URL

<asp:ScriptManager ID="Script" runat="server" EnablePartialRendering="true"> 
    <Scripts> 
     <asp:ScriptReference Name="MicrosoftAjax.js" Assembly="System.Web.Extensions" Path="~/js/ms/MicrosoftAjax.js" > 
     <asp:ScriptReference Name="MicrosoftAjaxWebForms.js" Assembly="System.Web.Extensions" Path="~/js/ms/MicrosoftAjaxWebForms.js"> 
    </Scripts> 
</asp:ScriptManager> 

如果你選擇了這種方法,不忘記啓用gzip和適當的緩存指令。

+0

我不知道,可能是ScriptManager會解決腳本的問題,但在我的情況下資源可以是JS,CSS和圖片。 – 2013-03-06 12:34:25

相關問題