2013-03-06 1 views
0

Можно ли заставить ASP.NET генерировать одну и ту же хэш-часть 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 создает URL-адрес WebResource.axd с другим хэшем для «control.js».

Вопрос: Могу ли я каким-то образом заставить его использовать тот же URL ресурса для обоих сайтов?

Зачем мне это ....? Я использую «общий» CDN для ресурсов с обоих сайтов. Он отлично работает для всех ресурсов, кроме WebResource.axd/ScriptResource.axd. Когда запрашивается ресурс на сайте www.site2.com, CDN пытается извлечь ресурс для кеша с сайта www.site1.com, но поскольку хэш, полученный с сайта www.site2.com, отличается, CDN не загружает и не кэширует ресурс.

ответ

0

Вы можете использовать жерех: ScriptManager к «Unbundle» ресурсы - намного лучше для прокси-кэшей, поскольку они не имеют тенденцию кэшировать URL, с querystrings

<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 и изображения. –

Смежные вопросы