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 を利用しました。


コメント