0

CSS を更新する前は、Login.css に次のものがありました。

body
{    
  background-image: url('./pictures/fond.png');    
  background-repeat: repeat-x;
}

ここに私の構造がありました:

ここに画像の説明を入力

今、私は次のcssを持っています:

body
{    
  background-image: url('../pictures/fond.png');    
  background-repeat: repeat-x;
}

URLのダブルポイントに注意してください。

ここに私の新しい構造があります:

ここに画像の説明を入力

私の問題: IIS テスト サーバーでパブリッシュすると、自分の写真が表示されません!? ローカル開発マシン (VS2012) では、自分の写真を見ることができます。

しかし、IIS テスト サーバーにある Login.css を更新し、ダブル ポイントをシングル ポイントに置き換えると、再び機能します。(私の更新後)Login.cssがcssフォルダーの下にあるため、これは論理的ではありません。

何か案が?

ありがとう。

アップデート - - - - - - - -

CSSを参照する方法は次のとおりです。

bundles.Add(new StyleBundle("~/Content/bundleLogin").Include(
            "~/Content/css/bootstrap.css",
            "~/Content/css/Login.css"));

バンドルを作成してから:

@Styles.Render("~/Content/bundleLogin")
4

1 に答える 1

0

次のように、ビュー内の CSS ファイルへのパスをハードコードしたに違いありません。

<link href="Content/css/Login.css" rel="stylesheet" type="text/css" />

もちろん、URLヘルパーを使用する正しい方法でそれを行う代わりに:

<link href="@Url.Content("~/Content/css/Login.css")" rel="stylesheet" type="text/css" />

CSS ファイルに関する限り、そこで参照しているすべての URL (画像など) は、常に CSS ファイルの現在の場所に対して相対的です。したがって、CSS ファイルを適切に参照すれば、問題は発生しません。Usingurl('../pictures/fond.png');は正しい相対位置です。


アップデート:

ああ、問題がわかりました。バンドルを使用しています。バンドルの問題は、バンドルの名前を宣言した方法では、物理構造と同じレベルのフォルダーのネストがないことです。したがって、バンドルを次のように変更します。

bundles.Add(new StyleBundle("~/Content/css/bundleLogin").Include(
        "~/Content/css/bootstrap.css",
        "~/Content/css/Login.css"));

その後:

@Styles.Render("~/Content/css/bundleLogin")
于 2013-02-09T13:21:37.683 に答える