3

ASP.NET WebForms アプリケーション (VS 2008) に異なるバージョンの .js javascript ファイルが必要です。

  • コメントなどの本格的なバージョン
  • 生産用の縮小版

デバッグ中に本格的なバージョンを自動的に取得し、アプリケーションを本番環境にデプロイするときに縮小版を取得する方法はありますか? 答えがハックであってもかまいません。

VS 2010で可能ですか?

4

2 に答える 2

8

もちろん可能ですが、ここで問題となるのは「どのように設定するか」です。

ここで鍵となる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))
于 2012-04-19T12:49:53.210 に答える
3

SquishIt ライブラリを使用するのが好きです。

ローカル開発用に CSS と JavaScript を複数のファイルに保持し、実稼働用に単一の縮小ファイルを公開できます。

編集:このツールを使用すると、縮小するファイルのリストをプログラムで定義できます。このリストを定義するコードは、.aspx ファイルまたは MVC ビューのコード ブロックに埋め込まれています。実行時には、次の 2 つのことが起こります。

  • 縮小されたファイルが動的に作成されます
  • 動的に作成された縮小ファイルへのリンクが、最終的にレンダリングされた HTML に作成されます。

ただし、#debugが定義されている場合は、その代わりに、元のバージョンのファイルをデバッグに使用できるように、コードは元のファイルへのリンクを出力に表示します。

CSS と JavaScript の minfication をサポートしています。

詳細については、上記のリンクをたどってください。

于 2012-04-19T13:54:35.277 に答える