ASP.NETでCDN(Content Delivery Network)を利用する方法です。
Global.asaxを編集する
Global.asaxファイルにリソース定義(ScriptResourceDefinition)を生成してScriptManagerコントロールに追加するメソッドを作成し、Application_Startメソッドで実行するようにします。
これでアプリケーションの初期化時にリソース定義が追加されるようになります。
void Application_Start(object sender, EventArgs e) { // jQuery AddJQueryDefinition(); // jQuery UI AddJQueryUiDefinition(); } /// <summary> /// jQueryのリソース定義を追加 /// </summary> private static void AddJQueryDefinition() { string version = "1.11.1"; ScriptResourceDefinition def = new ScriptResourceDefinition(); def.Path = "~/Scripts/jquery/jquery-" + version + ".min.js"; def.DebugPath = "~/Scripts/jquery/jquery-" + version + ".js"; def.CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + version + ".min.js"; def.CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-" + version + ".js"; def.CdnSupportsSecureConnection = true; ScriptManager.ScriptResourceMapping.AddDefinition("jquery", null, def); } /// <summary> /// jQuery UIのリソース定義を追加 /// </summary> private static void AddJQueryUiDefinition() { string version = "1.10.4"; ScriptResourceDefinition def = new ScriptResourceDefinition(); def.Path = "~/Scripts/jquery.ui/" + version + "/jquery.ui.min.js"; def.DebugPath = "~/Scripts/jquery.ui/" + version + "/jquery.ui.js"; def.CdnPath = "http://ajax.aspnetcdn.com/ajax/jquery.ui/" + version + "/jquery-ui.js"; def.CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jquery.ui/" + version + "/jquery-ui.min.js"; def.CdnSupportsSecureConnection = true; ScriptManager.ScriptResourceMapping.AddDefinition("jquery.ui", null, def); }
ScriptManagerを編集
マスターページ(Site.Master)などにあるScriptManagerコントロールにScriptReferenceタグを追加して、AddDefinition時の第一引数で指定した「jquery」や「jquery.ui」を指定すると、該当するリソース定義に設定したスクリプトが取得されるようになります。
<asp:ScriptManager runat="server" EnableCdn="true"> <Scripts> <asp:ScriptReference Name="jquery"/> <asp:ScriptReference Name="jquery.ui"/> </Scripts> </asp:ScriptManager>
取得されるスクリプトは、ScriptManagerのEnableCdnをtrueにするとCdnPathやCdnDebugPathを優先して利用し、CDNが利用できないときはフォールバックしてPathやDebugPathを利用してくれます。
Path | リリースモードで実行したときに使用されるパス |
DebugPath | デバッグモードで実行したときに使用されるパス |
CdnPath | リリースモードで実行し、CDNを利用するときに使用されるパス |
CdnDebugPath | デバッグモードで実行し、CDNを利用するときに使用されるパス |
CDNは Microsoft Ajax Content Delivery Network を利用しました。
コメント