ASP.NETのバンドルおよびミニファイ機能を使用して簡単なテストを設定しました。私は2つの非常に単純なjsファイルを持っています:
〜/ JS / Site.js
(function echo1() {
alert("this is site.js");
})();
〜/ JS / test.js
(function echo2(value) {
alert("and this is test.js");
})();
次のようにバンドルを作成しました。
bundles.Add(new ScriptBundle("~/bundles/scripts/site-globals").Include(
"~/JS/Site.js",
"~/JS/test.js"));
を使用してページ上のバンドルを参照しました@Scripts.Render("~/bundles/scripts/site-globals")
(web.configで)デバッグ中のサイトを実行すると<compilation debug="true" targetFramework="4.5" />
、期待どおりの結果が得られます。2つのアラートボックスが次々に表示されます。
ただし、change to release(<compilation debug="false" targetFramework="4.5" />
)を実行すると、最初のアラートボックスのみが表示され、ブラウザーに送信される結合されたJSファイルはtest.jsのコンテンツを完全に無視します。
「結合および縮小」された出力は次のとおりであり、誤ってSite.jsからのコードのみが含まれています。
(function(){alert("this is site.js")})()
なぜこれが起こっているのかについてのアイデアは大歓迎です!ありがとう