13

私は4つのファイルを持っています:

  • a.css
  • a.min.css
  • b.css
  • b.min.css

それらは次の方法でバンドルに追加されます。

bundles.Add(new StyleBundle("~/Content/acss").Include("~/Content/a.css", "~/Content/b.css"));

デバッグでアプリケーションを実行すると、すべてが適切にレンダリングされます。

 <link href="/Content/a.css" rel="stylesheet"/>
 <link href="/Content/b.css" rel="stylesheet"/>

ただし、リリースで実行する場合は、次のようにレンダリングします。

 <link href="/Content/acss?v=mUdXE7_fXKjICzE_XteIB1Igy6TekX1QFh-BtY6fFUw1" rel="stylesheet"/>

そして、私は設立しています:

/* 縮小に失敗しました。縮小されていないコンテンツを返します。(24,708): 実行時エラー CSS1030: 予想される識別子、'.' が見つかりました

だから私は2つの質問があります:

  1. オンラインのドキュメントに従って動作しないのはなぜですか? すべての情報は、リリースバージョンで利用可能な場合、最小ファイルを選択すると言っていますか?
  2. ドキュメントに従って動作させるにはどうすればよいですか?
4

3 に答える 3

37

私はあなたが持っていたのとまったく同じ問題を抱えていました。私のソリューションには、最小化するために Web Essentials を使用した .min ファイルを伴う css/js ファイルが含まれていました。

バンドルをデバッグ モードで使用すると、すべてが正しく機能し、最小化されていない個々のファイルがすべてアプリに読み込まれます。ただし、設定BundleTable.EnableOptimizations = true;すると、ファイルを最小化するのに問題があったため、エラーが発生しました。

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minificationに基づいて、次のように述べています。

ASP.NET MVC 4 の場合、これはデバッグ構成で、ファイル jquery-1.7.1.js がバンドルに追加されることを意味します。リリース構成では、jquery-1.7.1.min.js が追加されます。バンドル フレームワークは、次のようないくつかの一般的な規則に従います。

「FileX.min.js」と「FileX.js」が存在する場合、リリースする「.min」ファイルを選択します。デバッグ用に「.min」以外のバージョンを選択する。

すでに最小化されているファイルをロードして、それらをバンドルするだけだと思っていました。私が暗示していると思われますが、ドキュメントに欠けているのは、すでに最小化されているファイルが再び最小化され、機能せず、出力にエラーが発生することです。

http://aspnetoptimization.codeplex.com/workitem/56を見つけました。

変換なしでバンドルを作成するだけで縮小をスキップできます。つまり、ScriptBundle を作成せず、通常のバンドルのみを作成します。

これが私の問題に対する答えであることが判明しました。ScriptBundlemyとStyleBundletypeの両方を設定Bundleすることで、最小化せずに正しいバンドルを取得できるようになりました。

デバッグでは、すべての通常の css/jss ファイルが個別に読み込まれます。非デバッグに設定すると、すべてがバンドルされ、すべての .min ファイルが自動的に選択されます。

于 2013-02-13T16:31:28.083 に答える
0

Bundle Transformerを見たことがありますか? 1.6.5 バージョンでは、事前に縮小されたファイルの使用を有効/無効にするusePreMinifiedFilesというプロパティが導入されました。

設定しましたかBundleTable.EnableOptimizations = true;

ドキュメントから

注: EnableOptimizations が true であるか、Web.config ファイルのコンパイル要素の debug 属性が false に設定されていない限り、ファイルはバンドルまたは縮小されません。さらに、ファイルの .min バージョンは使用されず、完全なデバッグ バージョンが選択されます。EnableOptimizations は、Web.config ファイルのコンパイル要素の debug 属性をオーバーライドします。

于 2012-10-19T10:22:24.437 に答える