5

バンドルを使用して、一緒に使用する多数のファイルをグループ化し、ブラウザーへの 1 つの配信にする必要があると思います。これは、たとえば、ルート スタイルの場合、次のようなことをしたいことを意味します。

var bundle = new StyleBundle("~/Content/style").Include(
    "~/Content/mystyle.less",
    "~/Content/bootstrap.css",
    "~/Content/bootstrap-responsive.css");
bundle.Transforms.Add(new LessTransform());
bundle.Transforms.Add(new CssMinify());
bundles.Add(bundle);    

しかし、これは、LessTransform に渡す前にすべてのファイルを単一の css ファイルに事前にバンドルしているように見えるため、より少ないファイルをバンドルするためのカスタム変換手法ではうまく機能しないようです。私が言えることから、この方法は、少ないファイルをすべてまとめてバンドルした場合にのみ機能します。

バンドルを取得して、less ファイルと css ファイルの両方を同じバンドルに含める方法はありますか?

4

4 に答える 4

4

はい、その通りです。トランスフォーマーは、CSS/LESSのすべてのコンテンツを連結してからコンバーターに渡します。とはいえ、LESSスタイルシートには常に標準のCSSを含めることができるため、コンバーターはLESSとCSSの両方の存在を妨げてはなりません。

問題はStyleBundle、すでにトランスフォーマーが関連付けられているオブジェクトを使用していることのようです。Bundle次のように、構成で行うようにジェネリックを使用してみてください。

var customStyles = new Bundle("~/bundle/style/css")
                       .Include("~/Content/normalize.css","~/Content/*.less");
bootstrapStyles.Transforms.Add(new LessTransform());
bootstrapStyles.Transforms.Add(new CssMinify());
bundles.Add(customStyles);

以下のあなた自身の答えに関しては、bootstrap.cssファイルの問題は、LESSトランスフォーマーがそれを気に入らないということではありませんが、おそらく@importsのパスの問題です。適切なパスを確実に解決するために、LESSトランスフォーマーが何かを使用していることを確認してください任意の依存関係スタイルシートに。

于 2012-10-12T22:35:35.210 に答える
2

すべての CSS が有効な LESS であると信じています (ただし、すべての LESS が有効な CSS であるとは限りません)。

したがってLessTransform、ブートストラップ css ファイルに を適用しても、違いはありません。

すべてのファイルを 1 つの css ファイルにバンドルして、ブラウザーに配信します。

設計時にのみパフォーマンスの問題が発生する場合があります。

正しい出力が引き続き生成され、キャッシュによって実行時のパフォーマンスの問題が防止されます。

于 2012-10-01T13:31:12.247 に答える
2

これが少し古い投稿であることは知っていますが、誰かに役立つかもしれない奇妙なことに気づきました...

Bundlecss ファイルの名前に含まれるファイルが少ない場合、オブジェクトはハイフンを好まないことがわかりました。すなわち:

var frontendStyles = new Bundle("~/bundles/frontend.main.css")
            .IncludeDirectory("~/Content/less", "*.less")
            .Include(
                "~/Content/ladda.css",
                "~/Content/jquery.mobile.custom.structure.min.css",
                "~/Content/jquery-ui.1.9.2.custom.css"
            );

私にはうまくいきませんが、次のようにします(jqueryuiファイル名に変更します):

var frontendStyles = new Bundle("~/bundles/frontend.main.css")
            .IncludeDirectory("~/Content/less", "*.less")
            .Include(
                "~/Content/ladda.css",
                "~/Content/jquery.mobile.custom.structure.min.css",
                "~/Content/jqueryui.1.9.2.custom.css"
            );

そのため、ファイル名を から"~/Content/bootstrap-responsive.css"に変更する"~/Content/bootstrapresponsive.css"と、問題をうまく分類できます。

于 2015-10-15T09:58:45.727 に答える
0

これをもう少し調べて、StyleBundle の代わりに Bundle を使用しようとしましたが、まだ問題がありました。問題は特に、bootstrap.css ファイルにあまり好ましくない構文があることに関係していると思います。

于 2012-10-07T01:32:37.920 に答える