11

MVCアプリケーションをデプロイすると、.NET4.5フレームワークがCSSをバンドルおよび縮小します。ただし、結果のファイルは空であるため、CSSルールは適用されません。Chromeでは、Resource interpreted as Stylesheet but transferred with MIME type text/plain警告が表示されます。IE9では、CSS was ignored due to mime type mismatch警告が表示されます。

これは私のBundleConfigにあるものです

bundles.Add(
    new StyleBundle("~/Content/bootstrap").Include(
        "~/Content/bootstrap/bootstrap-responsive.css",
        "~/Content/bootstrap/bootstrap-editable.css",
        "~/Content/bootstrap/FileUpload.css"));

これが私のレイアウトヘッドです:

<head>
    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="IE=Edge" />
    <title>@ViewBag.Title</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width" />
    <link href="@ViewBag.StyleUrl" rel="stylesheet" type="text/css" />
    @Styles.Render("~/Content/bootstrap")
    <script src="~/scripts/libs/modernizr/modernizr-2.5.3.js" type="text/javascript"></script>
</head>

追加のスタイルシートは、管理ツールの構成に基づいて動的にロードされるスタイルシート用です。

これをローカルで実行する場合、またはdebug = "true"を設定すると、個々のファイルが取得され、すべてが正常に表示されます。これらをレイアウトページにハードコーディングすると、正常に表示されます。IISを確認し、CSSの正しいMIMEタイプを確認しました(ハードコードされた値が機能することを考えると、これは理にかなっています)。また、グーグルでも「静的コンテンツ」の役割サービスがインストールされていることを確認しました。

何かご意見は?

4

3 に答える 3

25

バンドル名は、ファイルシステム上のフォルダ名と同じです。

バンドルをに変更します

bundles.Add(
new StyleBundle("~/Content/bootstrapBundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css",
    "~/Content/bootstrap/bootstrap-editable.css",
    "~/Content/bootstrap/FileUpload.css"));

つまり、バンドルの名前はフォルダやファイルの名前ではありません

于 2013-02-20T01:12:50.657 に答える
1

同じ問題がありました。私の解決策は、バンドルの無効な名前でした(「_」または「。」で構成されていました)。名前はプレーンテキストである必要があります。

bundles.Add(
new StyleBundle("~/Content/bootstrap_Bundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css",
    "~/Content/bootstrap/bootstrap-editable.css",
    "~/Content/bootstrap/FileUpload.css"));

する必要がありました:

bundles.Add(
new StyleBundle("~/Content/bootstrapBundle").Include(
    "~/Content/bootstrap/bootstrap-responsive.css",
    "~/Content/bootstrap/bootstrap-editable.css",
    "~/Content/bootstrap/FileUpload.css"));
于 2016-07-06T10:54:04.753 に答える
0

ドットディフェンダーなどの製品を使用している場合は、このエラー状態も発生する可能性があります。バンドルするときに、キャッシュバスターパラメーターにダブルダッシュが含まれている場合、ドットディフェンダーのような製品は、それをSQLインジェクション攻撃の可能性があると見なし、要求/応答を妨害することになります。

これを回避する1つの方法は(そのソフトウェアをオフにできないと仮定して)、元のcssファイルにのようなものを追加することです.dotdefenderbuster {}

キャッシュバスターキーの影響を考慮して、バンドリングアルゴリズムが更新されているかどうかを確認する必要があります。

例: http ://www.foo.com/MyApp/Content/themes/MyApp/css?v = J9DBkvB7JWRo80eUukDOe3--6DAtA1

于 2015-02-14T16:34:49.880 に答える