System.Web.Optimization の .NET 4 バージョンを使用して、CSS および JS ファイルをバンドルおよび縮小しています。Visual Studio と Web 開発サーバーを使用する私の開発環境では、これはうまく機能します。debug="false" を使用すると、バンドル ファイルは実際に期待どおりにバンドルされます。リリース ビルドとまったく同じ web.config (debug="false") を使用して IIS 7 にデプロイすると、Scripts.Render はバンドル ファイルではなく、含まれている JS ファイルのリストをレンダリングします。
<asp:PlaceHolder ID="GeneralScriptsAndCSS" runat="server">
<%: System.Web.Optimization.Scripts.Render("~/bundles/script/common") %>
</asp:PlaceHolder>
ブラウザで手動でバンドル ファイルにアクセスしようとしましたが、正しいように見えます。唯一の問題は、最適化を有効にしたいことを Scripts.Render (および Styles.Render) が理解していないように見えることです。
バンドルが無効になっている理由に関するログ情報を取得する方法はありますか? さらにテストすると、ページの 1 つではバンドルが有効になっているように見えますが、1 つのページでは有効になっていません。特定のページでバンドルが無効になっている理由を理解する方法がない限り、これをデバッグするのは非常に困難です。
編集: バンドルはルート内のすべてのページで有効になっているようですが、サブディレクトリ内のすべてのページでは無効になっています。
編集 2:Nuget パッケージを 1.1.0 (ベータ 1) のプレリリース バージョンにアップグレードすることで問題を解決したようです。
編集 3: 問題が戻ってきました。他のサーバーにデプロイしましたが、ルート内のすべてのページでバンドルが有効になっていますが、サブ ディレクトリ内のすべてのページでは無効になっています。一部のサーバーでは完全に機能しますが、一部のサーバーのルートのページでのみ機能します。
編集 4: 問題が見つかりました。誤って、デバッグ フラグをオーバーライドする (true に設定する) サブ フォルダーに追加の web.config ファイルがありました。そのため、ルート フォルダー (debug false) では機能し、サブ フォルダー (debug true) では機能しませんでした。