2

jquery ui をバンドルに追加すると、次のようになります。

bundles.Add(new StyleBundle("~/Content/css").Include(
                            "~/Content/themes/base/jquery.ui.core.css",
                            "~/Content/themes/base/jquery.ui.resizable.css",
                            "~/Content/themes/base/jquery.ui.selectable.css",
                            "~/Content/themes/base/jquery.ui.accordion.css",
                            "~/Content/themes/base/jquery.ui.autocomplete.css",
                            "~/Content/themes/base/jquery.ui.button.css",
                            "~/Content/themes/base/jquery.ui.dialog.css",
                            "~/Content/themes/base/jquery.ui.slider.css",
                            "~/Content/themes/base/jquery.ui.tabs.css",
                            "~/Content/themes/base/jquery.ui.datepicker.css",
                            "~/Content/themes/base/jquery.ui.progressbar.css",
                            "~/Content/themes/base/jquery.ui.theme.css"

Internet Explorer には読み込み可能なスタイル シートが 31 に制限されており、そのうち jquery は 12 を使用しています。yui のリセット、ベース、およびフォントを追加します。サイト スタイルまたはプラグイン スタイル シートが読み込まれていない状態で、既に 15 のスタイル シートにいます。

明らかに、生成されるスタイルシートは 1 つだけなので、バンドルされている場合はすべて正常に機能します。私の最初の本能は、 @Import を使用するものを使用することでしたが、それによりバンドルが失敗するか、縮小されません。

スタイルシートを減らす以外に、これに対する最善の回避策は何ですか? 私の現在の解決策は#if DEBUG構造ですが、より良い方法はありますか?

#if DEBUG
     bundles.Add(new StyleBundle("~/Content/css").Include(
                        "~/Content/themes/base/jquery.ui.all.css"));
#else
     bundles.Add(new StyleBundle("~/Content/css").Include(
                            "~/Content/themes/base/jquery.ui.core.css",
                            "~/Content/themes/base/jquery.ui.resizable.css",
                            "~/Content/themes/base/jquery.ui.selectable.css",
                            "~/Content/themes/base/jquery.ui.accordion.css",
                            "~/Content/themes/base/jquery.ui.autocomplete.css",
                            "~/Content/themes/base/jquery.ui.button.css",
                            "~/Content/themes/base/jquery.ui.dialog.css",
                            "~/Content/themes/base/jquery.ui.slider.css",
                            "~/Content/themes/base/jquery.ui.tabs.css",
                            "~/Content/themes/base/jquery.ui.datepicker.css",
                            "~/Content/themes/base/jquery.ui.progressbar.css",
                            "~/Content/themes/base/jquery.ui.theme.css"));
#endif
4

1 に答える 1

1

本当にすべてのテーマが必要な場合はjquery.ui.all.css、 DEBUG および RELEASE モードに含めるだけです。

bundles.Add(new StyleBundle("~/Content/css").Include(
    "~/Content/themes/base/jquery.ui.all.css"));

このように、DEBUG モードでは単一の CSS ファイルを取得し、RELEASE モードでは、キャッシュ ヘッダーが提供される単一の圧縮された CSS ファイルを取得します。

于 2012-10-01T12:59:44.343 に答える