9

BundleConfig に次の ScriptBundle を追加しています。

    bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
        "~/Scripts/jquery-1.*",
        "~/Scripts/load-image.min.js",
        "~/Scripts/bootstrap.*",
        "~/Scripts/bootstrap-image-gallery.*",
        "~/Scripts/my.global.js"));

これは、_Layout.cshtml の最後で次のように参照されます。

@Scripts.Render("~/bundles/javascript")

デバッグ時に、このスクリプト レンダリングの出力が次のようになっていることに気付きました。

<script src="/Scripts/jquery-1.8.2.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/bootstrap-image-gallery.js"></script>
<script src="/Scripts/my.global.js"></script>

load-image.min.js スクリプトがないことに気付きましたか? 私が望むのは、デバッグしているかどうかに関係なく、同じ縮小されたスクリプトを使用することです。リリース条件では、スクリプトはバンドルされた JS ファイルに含まれています。

「分」を見て、縮小されていないバージョンを探していて、見つけられなかったので、何が最善かを判断するには、それを完全に無視することだと思います。素晴らしい。load-image.min.js のコピーを作成した場合、それを load-image.js と呼び、BundleConfig で「load-image.*」として参照しますそれを行う?

ここで何かが足りないと思います。私は縮小されていないバージョンを持っていませんし、率直に言って気にしません。Bootstrap 画像ギャラリー プラグインだけで使用しています。そこに何かアイデアはありますか?

4

2 に答える 2

5

この動作は、1.1.0-alpha1リリースで改善(修正)されました。古いデフォルトの無視リストエントリをすべて新しいDirectoryFilter無視リストに移動しました。これらのリストは、この機能の本来の目的である*.jsなどの検索パターンを含める場合にのみ使用されます。結果として、個々のファイルを明示的に含める場合、これはもはや問題にはなりません。

注:これがまだ問題になる可能性がある1つの場所は、jquery-{version}.min.jsのようなものを含めようとした場合です。

于 2012-10-29T21:22:16.500 に答える
5

がありignoreList、必要に応じてクリアできます。次のようになります。

public static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
{
    if (ignoreList != null)
    {
        ignoreList.Ignore("*.intellisense.js");
        ignoreList.Ignore("*-vsdoc.js");
        ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
        ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled);
        ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled);
        return;
    }
    else
    {
        throw new ArgumentNullException("ignoreList");
    }
}

詳細: ASP.NET バンドルと縮小の高度なオプション

于 2012-10-26T13:54:29.047 に答える