ASP.NET WebForms アプリケーション (VS 2008) に異なるバージョンの .js javascript ファイルが必要です。
- コメントなどの本格的なバージョン
- 生産用の縮小版
デバッグ中に本格的なバージョンを自動的に取得し、アプリケーションを本番環境にデプロイするときに縮小版を取得する方法はありますか? 答えがハックであってもかまいません。
VS 2010で可能ですか?
ASP.NET WebForms アプリケーション (VS 2008) に異なるバージョンの .js javascript ファイルが必要です。
デバッグ中に本格的なバージョンを自動的に取得し、アプリケーションを本番環境にデプロイするときに縮小版を取得する方法はありますか? 答えがハックであってもかまいません。
VS 2010で可能ですか?
もちろん可能ですが、ここで問題となるのは「どのように設定するか」です。
ここで鍵となるDEBUG
定義から始めます。それで、あなたがそれをページに設定したいとしましょう。
したがって、ページで次のようなことができます:
<% #if DEBUG %>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<% #else %>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<% #endif %>
別の方法として、リテラルを使用して、コード ビハインドでこのスイッチを作成することもできます。
<asp:Literal runat="server" ID="txtScripts" EnableViewState="false" />
と
protected void Page_Load(object sender, EventArgs e)
{
#if DEBUG
txtScripts.Text = "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js\"></script>";
#else
txtScripts.Text = "<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></script>";
#endif
}
もう 1 つの方法は、ハンドラーを使用してすべての JavaScript ファイルを読み取り、コードを使用して縮小し、同じキー DEBUG を使用していずれかのバージョンを送信することです。
個人的には、MS Ajax MInified http://www.asp.net/ajaxlibrary/AjaxMinDocumentation.ashx を使用します。すべての JavaScript ファイルを読み取り、それらを 1 つのファイルにし、このパラメーターを使用してそれらを縮小するかどうかを指定します。
Minifier MyMin = new Minifier();
CodeSettings cs = new CodeSettings();
#if DEBUG
cs.MinifyCode = false;
cs.OutputMode = OutputMode.MultipleLines;
cs.PreserveFunctionNames = true;
cs.RemoveFunctionExpressionNames = false;
cs.RemoveUnneededCode = false;
cs.StripDebugStatements = false;
#else
cs.MinifyCode = true;
cs.OutputMode = OutputMode.SingleLine;
#endif
Write(MyMin.MinifyJavaScript(AllMyJavascript, cs))
SquishIt ライブラリを使用するのが好きです。
ローカル開発用に CSS と JavaScript を複数のファイルに保持し、実稼働用に単一の縮小ファイルを公開できます。
編集:このツールを使用すると、縮小するファイルのリストをプログラムで定義できます。このリストを定義するコードは、.aspx ファイルまたは MVC ビューのコード ブロックに埋め込まれています。実行時には、次の 2 つのことが起こります。
ただし、#debug
が定義されている場合は、その代わりに、元のバージョンのファイルをデバッグに使用できるように、コードは元のファイルへのリンクを出力に表示します。
CSS と JavaScript の minfication をサポートしています。
詳細については、上記のリンクをたどってください。