2013-02-19 30 views
7

MVCアプリケーションをデプロイするときに、.NET 4.5フレームワークが&のCSSをバンドルしています。ただし、結果のファイルは空であるため、CSSルールは適用されません。 Chromeでは、Resource interpreted as Stylesheet but transferred with MIME type text/plainという警告が表示されます。 IE9では、私はCSS was ignored due to mime type mismatchという警告を受け取ります。デプロイ後にバンドルされたCSSが表示されない... ASP.NET MVC4

これは、ここに私の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タイプを参照してください(ハードコードされた値が有効な場合は意味があります)。また、「静的コンテンツ」の役割サービスがインストールされていることを確認しました。

どのような考えですか?

+0

あなたのCSSをHTMLに含める示しすることはできますか? – NunoCarmo

答えて

22

バンドル名は、バンドルの名前は、フォルダの名前や

をファイルではありませんので、

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

にあなたのバンドルを変更

、ファイルシステム上のフォルダ名と同じです
+2

良いキャッチ、ありがとう! –

+2

大丈夫です!私の日を救った。 – Nexus23

+0

私はそれをしましたが、すべてのCSSスタイルが乱されました。既定のテンプレートを使用すると、たとえば、ホームのドロップダウンメニューが機能しなくなり、クリックしても何もドロップされません。 –

0

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

これを回避するには、.dotdefenderbuster {}のようなオリジナルのCSSファイルに何かを追加するだけです。

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

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

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")); 
関連する問題