0

WebResource.axd / ScriptResource.axdASP.NET に、異なる Web アプリケーションから URL の同じハッシュ部分を生成させることはできますか?

たとえば、MyControls.dllリソース " control.js" が埋め込まれており、www.site1.com、www.site2.com (MyControls.dll は両方のサイトの bin フォルダーに存在します) の 2 つの Web サイトで使用されています。Web サイトごとに、ASP.NET は "control.js" の異なるハッシュを持つ WebResource.axd URL を生成します。

質問:両方のサイトで同じリソース URL になるように強制することはできますか?

なんでこれが必要なの……?両方の Web サイトのリソースに「共有」CDN を使用しています。を除くすべてのリソースで完璧に機能しますWebResource.axd / ScriptResource.axd。www.site2.com からリソースが要求されると、CDN は www.site1.com からキャッシュ用のリソースを取得しようとしますが、www.site2.com から到着したハッシュが異なるため、CDN はリソースの読み込みとキャッシュに失敗します。

4

1 に答える 1

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 と適切なキャッシュ ディレクティブを有効にすることを忘れないでください。

于 2013-03-06T11:28:12.347 に答える