Web最適化かWebGreaseがかっこいいですが、その1つ(または両方)があり、非常に注意する必要があるかどうかはわかりません。
まず第一に、あなたのコードでは何の問題もありません。実際には
bundles.Add(new StyleBundle("~/content/css").Include(
"~/content/css/reset.css",
"~/content/css/bla.css"));
これはMicrosoftがまったく同じものです。彼らの主な理由は、を使用してください~/bundles
のCSSのは、相対パスは、画像のために台無しになるということです。ブラウザにバンドルがどのように表示されるかを考えてみましょう。他のURLと全く同じ方法で、通常のパス関連のルールはすべて、相対パスに対して適用されます。あなたのCSSが../images/bullet.png
への画像パスを持っていたとします。 ~/bundles
を使用していた場合、ブラウザは実際には存在しないbundles
より上のディレクトリを探しています。おそらく~/content/images
には~/images
があります。 FYI
は、我々が開発しているとしましょう働くかどうかを確認するために、CSSのリンクをクリックしてください猫についてのサイト。あなたはこれがあなたのHTML内でこのパスへのCSSリンクを生成し、この
@Styles.Render("~/Content/css/cats.css") // dont do this - see below why
bundles.Add(new StyleBundle("~/content/css/cats.css").Include(
"~/content/css/reset.css",
"~/content/css/bla.css"));
を持っていることがあります。
/Content/css/cats.css?v=JMoJspikowDah2auGQBfQAWj1OShXxqAlXxhv_ZFVfQ1
しかし、これは404を与えるだろう、私は延長の.cssを入れて、IIS(と思うが)を取得しますので、混乱している。
私はこれに変更した場合、それは正常に動作します:
@Styles.Render("~/Content/css/cats")
bundles.Add(new StyleBundle("~/content/css/cats").Include(
"~/content/css/reset.css",
"~/content/css/bla.css"));
もう一つの問題は、すでに他の人が指摘したが(あなたがCSSディレクトリやファイルがある場合は
@Styles.Render("~/Content/css")
をしない必要がありますあなたのContent
ディレクトリにcss
という名前のファイルはありません。
追加のトリックは、あなたの生成されたHTMLは、それがないと、このように見える場合、あなたはおそらく完全に一致していないバージョン番号
<link href="/Content/css/cats?v=6GDW6wAXIN5DJCxVtIkkxLGpojoP-tBQiKgBTQMSlWw1" rel="stylesheet"/>
を持っていることを確認する必要があるということですBundleテーブルとcshtmlファイルの間のバンドル名。
<link href="/Content/css/cats" rel="stylesheet"/>
〜Content/css/reset.min.cssファイルとbla.min.cssファイルを作成して、EnableOptimizations = trueが探す傾向にある場合はどうなりますか? – Phil
@Phil still 404. – sed
空のプロジェクトを作成し、2つの 'css'ファイルを試してみました。同じことが起こりました。おそらくそれは '/ content /'ではなく '/ content/css /'フォルダに自分のcssファイルを置いているからだと思います... – sed