2011-12-08 4 views
1

私は基本的なMVC3サイトを作成し、image.cssファイル(元のテンプレートの一部)に画像パスを追加しました。CSSで定義された画像は、展開されたMVC3サイトに表示されません

devスタジオからアプリケーションを実行すると、サイトは正常に見え、画像が表示されます。

インストーラをビルドしてサイトをサーバーに展開すると、イメージは表示されません。ここで

は私のcssファイルのサンプルです:

#CustomerLogo 
{ 
    position: relative; 
    margin-left:auto; 
    margin-right: auto; 
    width: 300px; 
    height: 96px; 
    background-image: url(/Content/themes/base/images/CustomerLogo.jpg); 
    background-repeat: no-repeat; 
    background-position: center; 
    background-color: rgb(41,139,178); 
} 
+0

イメージはサーバーに存在しますか? – Nix

+0

はい。イメージはサーバー上に存在します – TeamWild

答えて

2

確保のほかにイメージがサーバーに実際にロードされていることを確認するには、サーバー上のアプリケーションが実際にルートディレクトリ/で実行しています。たとえば、あなたのサイトがfacebook.com/myGreatAppにある場合、あなたのURLに接頭辞/をつけてfacebook.com/Content/...で画像を探すようにブラウザに指示しています。これはfacebook.com/ではなくルートですmyGreatApp/Content/...

これは、CSSから画像への実際のパスが何であるかを判断し、それを使用するためのものです。相対パスはこれを完全に提供し、使用する相対的なオプションは、cssが画像との関係でどこに位置するかによって決まります。

+0

cssはコンテンツディレクトリ(content \ site.css)にあります。相対パスはCSSファイルかページか? – TeamWild

+0

ありがとうございます。私は、パスがページファイルではなくCSSファイルからの相対パスであることを理解しました。 – TeamWild

0

あなたはContentフォルダを見つけることを支援するために..が必要になる場合があり、

例:

background-image: url(../Content/themes/base/images/CustomerLogo.jpg); 
+0

".."は動作していないようです。私は問題がMVCを使用して私は実際には私の画像ファイルにHome \ Index.cshtlmビューから取得することがどのようなパスを知っていないと思う。 – TeamWild

+0

Davidが言及したように、別の問題は、すべての画像のパスがスタイルシートを基準にしていることを保証することです。 –

0

URLが正常に機能していますか?アドレスバーからURLに直接アクセスしようとすると、画像が表示されますか?

1

相対パスを試しましたか? CSSファイルは~/Content/themes/baseに存在すると仮定すると、これは動作するはずです:

background-image: url(images/CustomerLogo.jpg); 
2

は、仮想ディレクトリにサイトを展開することで、問題のように思えます。とにかく、アプリケーションではなく、のCSSファイルに関する画像を含める必要があります。試してみてください

background-image: url(themes/base/images/CustomerLogo.jpg); 
+0

あなたの提案が働いた。私は正しい道で私を始めたので、私は答えとしてダビデをマークしました。ありがとう。 – TeamWild

関連する問題