7

「問題は、デフォルトでは、asp.net mvc がデバッグ モードで css ファイルと js ファイルをバンドルしないことです。しかし、css ファイルと js ファイルはデバッグ モードでバンドルされています。」

何らかの理由で、すべての css ファイルと js ファイルがデバッグ モードでバンドルされています。それは数日前に始まりました。私たちには数人の開発者がいる大規模なチームがあり、リポジトリにいくつかの変更が送信されているため、過去数日間に何が変更されたかを見つけるのは困難です. ただし、BundleConfig と Global.asax.cs に大きな変更は見つかりませんでした。

アプリケーションがデバッグ モードで実行されている場合、BundleTable.EnableOptimizations は false を返します。

私の理解では、デバッグが true に設定されている場合、バンドルは行われません。 <compilation debug="true" targetFramework="4.5">

これまでのところ、Google でこの問題が発生したことは一度もありません。これは非常にユニークな問題ですか?

理想的には、回避策の代わりに修正したいと思います。原因を見つけることが、ここでの実際の問題です。どこから修正を探し始める必要があるかについての指針をいただければ幸いです。ありがとうございました。

編集:私の質問は、バンドルと縮小を使用した ASP.NET MVC 4 アプリと似ていますが、まったく同じではありません。デバッグモードで縮小が有効になっているのはなぜですか? 誰かが「この質問にはすでに回答があるかもしれません:」タグを削除してください。私の場合、バンドルパスはすでに「〜」で始まっています

テンプレート: @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/js")

バンドル構成: bundles.Add(new Bundle("~/Content/css").Include("~/Content/*.css")); bundles.Add(new Bundle("~/bundles/js").Include("~/Scripts/myproj.*"));

4

4 に答える 4

9

これをグローバルに追加してみてくださいApplication_Start()

BundleTable.EnableOptimizations = false;

そう...

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();
     WebApiConfig.Register(GlobalConfiguration.Configuration);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     AuthConfig.RegisterAuth();

     BundleTable.EnableOptimizations = false;
}
于 2013-05-30T15:24:10.033 に答える
3

私にとって問題はweb.configにあり、「デバッグ」はに設定されていましたfalse

<configuration>
    <system.web>
        <compilation debug="false" targetFramework="4.0" />
于 2014-03-27T19:03:37.860 に答える
2

特に MVC 以外でトラブルシューティングを試みてください。

この問題は、チーム全体またはマシンだけを超えていますか? 少なくともチーム全体であれば、変更がコミット サイクルのどこかで発生したことがわかります。

ソリューションを再構築しましたか? ちゃんと掃除?IIS、IIS Express、または Cassini を実行していますか? デバッガーで実行しているサイト/ビルドがリリース モードでないことは確実ですか? ビルド パイプラインを介して変更されていない特定のビルドをデバッグしている可能性があります (失敗したビルドは間違いなくこのカテゴリに分類されます)。

私は VS 2010 と MVC 4 を使用していますが、デフォルトではデバッグ モードで、まったくバンドルされていません。明示的に何かを設定する必要はありません。違った見方をしている場合、これは通常の動作ではないため、明らかに何かを説明する必要があります。

あなたの最善のアプローチが最も難しいと感じています。コミットを巻き戻すことです。作業ディレクトリのコピーを作成し、これが発生する前の時点に戻します。このビルドで問題が発生しないことを確認してください。ただの想定ではありません。その時点と現在の中間にあるコミットをチェックアウトします。もう一度テストします。ビルドがまだ良好な場合は、時間を半分に減らして繰り返します。イシューに到達すると、そのイシューが導入されたコミットが、前回の「適切な」コミットと現在テスト中のコミットの間のどこかにあることがわかります。この手法により、問題を特定のコミットに分離することが大幅に簡素化されます。コードについて完全に確信が持てないか、コードがどこにあるのかをすでに明確に把握していない限り、一度に 1 つのコミットを実行することはほとんどありません。

于 2013-09-18T19:06:06.187 に答える
1

私の場合、私は使用していました

@Scripts.Render("/Bundles/scriptname")

と交換したところ

@Scripts.Render("~/Bundles/scriptname")

出来た。「〜」がすべての違いを生み出しました。

于 2016-06-16T10:07:40.563 に答える