私は現在、ASP.NET Web アプリケーションを開発しており、開発のほとんどを移動中、つまりオフラインで行っています。Google/Microsoft/an-other CDN for JQuery とその他のスクリプト リソースをいくつか使用する予定です。
私の質問は、ソリューション内のローカル ファイルへのリンクを使用して開発する簡単な方法はありますが、展開/リリース ビルド時に CDN を指す方法はありますか? 前もって感謝します!
ヘルパー関数を書くことができます:
public static string JQuerySource()
{
var config = WebConfigurationManager.OpenWebConfiguration("~");
var compilation = config.GetSection("system.web/compilation") as CompilationSection;
if (compilation == null || compilation.Debug)
{
// Running in Debug mode
return "/scripts/jquery.js";
}
// Running in Release mode
return "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js";
}
次のように使用します。
<script type="text/javascript" src="<%=JQuerySource() %>"></script>
展開する前にリンクを変更できますか...?
アップデート:
どこにでもリンクがある場合は、単純な [すべて置換] で十分です。
これらは本当にばかげた単純な解決策かもしれませんが、あなたの問題は単純すぎて抽象化や追加のコード記述が必要ないように思えます。
ただし、必要な場合は、これが 1 つの方法です。
値を保持する XML ファイルを作成します。
MyAppSettings.xml
<?xml version="1.0" encoding="utf-8" ?>
<MyAppSettings>
<JqueryLink
value="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
store1="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"
store2="../jquery.min.js"
>
</JqueryLink>
</MyAppSettings>
XML ファイルから値を取得します。
public static string GetJqueryUrl()
{
XElement file = XElement.Load(HttpContext.Current.Server.MapPath("~/App_Data/MyAppSettings.xml"));
string jquerylink = file.Element("JqueryLink").Attribute("value");
return jquerylink;
}
前のコードのヘルパー関数を作成し、それをコード全体で使用できます。
展開リンクとオフライン リンクを切り替える場合は、xml ファイルの「値」パラメーターを変更するだけです。
属性「store1」と「store2」をそこに保持できるので、それらを切り替えるときにそれらが何であるかを覚えておく必要がありません。