5

MVC プロジェクトをコンパイルして [https://localhost/MyApp] で表示すると、CSS が正しくレンダリングされないという問題があります。ボタンと背景画像が表示されません。一度は機能しましたが、何らかの理由で機能しなくなりました。ページがキャッシュされていませんか?firebug を使用して、ページが欠落しているかどうかを確認しましたが、エラーは見つかりませんでした。Visual Studio 2010 の設定の何かを変更する必要がありますか、それとも IIS ですか?

ただし、IIS 7.5 でセットアップした [https://localhost:444] Web サイトを使用して (既定の Web サイト) 領域ではなく、個々の Web サイトに公開すると、css は正常にレンダリングされるようです。

何が問題ですか?

4

4 に答える 4

5

MVC 4 Webサイトで発生する一般的な問題の1つは、cssバンドルがある場合のリリースとデバッグの違いです。それはあなたの場合である必要はありませんが、あなたには症状があります。

例を挙げて説明します。

次のようなバンドルがある場合:

var styles = new StyleBundle("~/Content/css").Include(
            "~/Content/toastr.css",
            "~/Content/flags/stylesheets/flags16.css",
            "~/Content/flags/stylesheets/flags32.css",
            "~/Content/Site.css")

そしてflags16.cssには次のものがあります。

background:url('flags/images/flags16.png');

でファイルを使用する~Content/flags/images/flags16.png

これはリリースモード(web.configのコンパイルdebug = "false")で機能します。これは、バンドル内のすべてのcssファイルが、正しいファイルを指す~/Content/css相対パスでに配置された1つのファイルとして提供されるためです。'flags/images/flags16.png'ただし、デバッグモードでは、ASP.NET MVCは縮小を無効にし@Styles.Render("~/Content/css")ます。ビュー内で使用すると、バンドルに含まれるすべてのファイルへのリンクがレンダリングされるため、次のようになります。

<link href="/WorkOrders.Web/Content/flags/stylesheets/flags16.css" rel="stylesheet">

そして、そのパスから、画像への相対パスはOKではないため、flags16.pngの画像はレンダリングされません。

これを解決する1つの方法は、画像への参照を含む.cssファイルをバンドルが指している場所(この場合は〜/ Content)に移動する必要があるため、縮小して生で提供されるときに同じパスを持ちます。

更新アプリはmvc4ではなく、アプリがWebサイトのルートにない場合(つまり、localhost / myappにある場合)に問題が発生するため、写真への参照でパスを確認する必要があります。それらを絶対に参照した可能性があり('/somepath/mypic.png')、アプリがの場合localhost/MyApp、パスは。である必要がありますlocalhost/MyApp/somepath/mypic.png@Url.Content(~/somepath/mypic.png)cshtmlからパスを使用している場合は、パスをに置き換えることでこれを解決できます。パスがcssにある場合は、写真への相対パスを設定する必要があります。

于 2013-01-20T23:00:22.223 に答える
5

私はちょうど同じ問題と戦っています.画像、スクリプト、CSSが見つからない、またはレンダリングされていません. (Visual Studio 2013、Windows 8.1。プロジェクトは Visual Studio 2010 から移行されました。)

この問題は、Web.config の次の行によって引き起こされました。

<mimeMap fileExtension=".mp4" mimeType="video/mp4" />

IIS Express の application.host ファイルには既にこの mimeMap 定義が含まれていたため、IIS Express は再度定義されることに対応できなかったようです。

この行を Web.config から削除すると、問題が完全に解決されました。

于 2015-07-31T15:42:57.447 に答える
1

Web サイトが SSL を使用するように構成されているようです。ただし、ローカルで実行している場合は、証明機関によって信頼されている有効な SSL 証明書がなく、クライアント ブラウザーが静的リソースのダウンロードを拒否している可能性があります。これを修正する 1 つの方法は、アドレスを信頼済みとして追加することです。そのため、URL をコピーして、ブラウザーのアドレス バーにある CSS ファイルの一部に貼り付けます。

https://localhost/MyApp/Content/Main.css

ブラウザに例外を追加することで無視できる無効な証明書に関する警告が表示されます。例外Ctrl+F5が追加され、アプリケーションが正常に動作し始めるはずです。

于 2013-01-21T09:49:15.673 に答える