0

ASP.NET の縮小およびバンドル機能には、特定のものをクリーンアップするスクリプトがあり、複数の独立したファイルを読み込んだ後に実行する必要があります。

バンドルを作成し、

new ScriptBundle(virtualPath, cdnPath).Include(
    "~/Scripts/a.js",
    "~/Scripts/cleanup.js",
    "~/Scripts/b.js",
    "~/Scripts/cleanup.js",
    "~/Scripts/c.js",
    "~/Scripts/cleanup.js",
    "~/Scripts/d.js",
    "~/Scripts/cleanup.js",
);

後で、 format を使用してこれをレンダリングします<script defer="defer" src="{0}"></script>。クリーンアップは、スクリプトのコードごとに 1 回、デバッグ モードとリリース モードの両方で期待どおりに行われることを期待しています。ただし、ASP.NET バンドルは同じファイル パスの繰り返し呼び出しを削除するため、出力は次のようになります。

<script defer="defer" src="/Scripts/a.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/b.js"></script>
<script defer="defer" src="/Scripts/c.js"></script>
<script defer="defer" src="/Scripts/d.js"></script>

デバッグモードでは、予想していたのに対し、

<script defer="defer" src="/Scripts/a.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/b.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/c.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/d.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>

これは、バンドルされたバージョンでファイルが除外されることも示していますが、これは私が望んでいるものではありません。

4

1 に答える 1