0

Index.cshtmlファイルに次のコードがあります。

    @{ViewBag.Title = "Home";}
<link href="Home.css" rel="stylesheet" type="text/css"/>
<img id="logo" src="~/Content/Images/Logo.png" />

このファイルは、私のASP.NETMVC4アプリケーションのビューです。

Webアプリケーションを実行すると、ソースコードがこれに適切なHTMLを追加し、「Content\Site.css」ファイルへの参照も追加していることがわかります。

ただし、アプリケーションの実行時に、Site.cssファイルも自分のHome.cssCSSファイルも使用されていないようです。まず、Site.cssに加えた編集は、アプリケーションの実行時にソースを表示したときに反映されません。これは奇妙なことです。すべてを保存してプロジェクトをビルドしてから、実行してブラウザからソースコードをチェックアウトしました。

第二に、Home.css(私のビューと同じフォルダーにあります)へのCSSリンクが使用されていないようです。HTMLエディターにはファイルに問題がないため、パスが有効であることを示していますが、ブラウザーのソースコードエディターでHome.cssをクリックすると、404エラーが発生します。存在しません。

私がここで間違っていることについて何か考えはありますか?

ここで使用している実際の画像は正しく読み込まれます。

4

3 に答える 3

1

Home.css(私のビューと同じフォルダーにあります)へのCSSリンクが使用されていないようです。

Viewsフォルダは、クライアントからの直接アクセスが制限されています。したがって、CSS、javascript、または画像ファイルをその中に入れてはいけません。それらはあなたの~/Contentフォルダ(またはクライアントからアクセスできる他のフォルダ)にあるはずです。そして、次のように参照します。

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

に関する最初の問題に関する~/Content/Site.css限り、スタイルシートはブラウザによってキャッシュされる可能性があります。キャッシュをクリアしてみてください。アプリケーションをリリースモードで実行していてバンドルを有効にしている場合、ASP.NET MVC 4はキャッシュ応答ヘッダーを自動的に出力するため、バンドルに含まれる静的リソースがブラウザーにキャッシュされます。

于 2012-12-08T16:53:49.667 に答える
1

@url.content()ヘルパーメソッドを使用して、相対パスを絶対パスに変換することもできます。複数の領域を持つWebサイトを実装する場合に非常に便利です。また、MVCでコンテンツへのパスを設定するのが一般的なスタイルなので、この方法の方が適しています。

于 2012-12-08T17:18:39.047 に答える
0

cssは頭の中にあります-私は.netに耐えられません

また、タグの最後に終了/>を付ける必要はありません-それは物事を台無しにします。XHTMLは適切ですが、誰もがそれを理解しているわけではありません。リンクタグを閉じて試してください...

于 2012-12-08T16:55:35.253 に答える