私のすべてのアプリケーションは正常に機能していましたが、突然、IISの下のすべてのサイトがCSS、画像、スクリプトをロードしていません。ログインページにリダイレクトします。
ログインするとうまくいきます。例:mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png
私のローカルマシンでは、ログインしなくても問題なく動作します。
私のすべてのアプリケーションは正常に機能していましたが、突然、IISの下のすべてのサイトがCSS、画像、スクリプトをロードしていません。ログインページにリダイレクトします。
ログインするとうまくいきます。例:mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png
私のローカルマシンでは、ログインしなくても問題なく動作します。
回答:
問題はIISが静的コンテンツを提供していないことである可能性があり、ここで設定できます。
出典:http : //adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/
ウインドウズ10:
同じ問題がありました。WindowsServer 2012 R2上のIIS 8.5のASP.Net 4.5にWebアプリケーションをインストールすると、認証されていないページがCSS、JS、および画像をロードしませんでした。
しかし、何も問題を解決していないようでした。次に、最後に、匿名ユーザーのIDをApp Pool Identityに設定してみましたが、機能し始めました。
私は頭を数時間叩き、この反応が私の仲間の開発者の苦痛を救うことを願っています。
これが機能している理由を本当に知りたいのですが。何かご意見は?
CPUName\IIS_IUSRS
、それでもロードされない。再度、感謝します!
同様のエラーが発生し、コンソールは次のようになりました。
私の問題は、会社が1つのトップドメインを使用していて、サブドメインを使用していないため、サイトをサブフォルダーで実行していることでした。このような:
host.com/app1
host.com/app2
私のコードは、localhostでは正常に機能するがapp1またはapp2では機能しないスクリプトを含めると、次のようになります。
<link rel="stylesheet" type="text/css" href="/Content/css/font-awesome.min.css" />
チルダ記号~
をsrcに追加すると、すべてが機能しました。
<link rel="stylesheet" type="text/css" href="~/Content/css/font-awesome.min.css" />
~
vsの説明/
:
/
-サイトルート~/
-アプリケーションのルートディレクトリ/
サイトのルートを返します(http://host.com/
)、
~/
アプリケーションのルートを返します(http://host.com/app1/
)。
web.configからstaticContentセクションを削除してみてください。
<system.webServer>
<staticContent>
...
</staticContent>
</system.webServer>
これはあなたの質問に答えないかもしれませんが、私は新しいIISのインストールで同じ症状で頭を悩ませてきました。CSS、JS、画像が表示されませんでした。IIS 7.5に「静的コンテンツ」の役割がインストールされていないことが原因でした。
おそらく、web.configでWindows認証が有効になっています。ローカルマシンでは、Windows資格情報が自動的に渡され、機能します。ライブサイトでは、あなたは匿名ユーザーとして扱われます(IE設定でこれを制御できますが、自分が何をしているのか本当に理解していない限り、これを変更しないでください)。
これにより、以下が発生します。
これは壊れておらず、意図したとおりに機能していますが、これを「修正」します。
これをweb.configに追加します
<location path="Images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
"~/Images"
これをweb.configファイルの構成セクションで使用します。
<location path="images">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="css">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="js">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
私が苦労したのは、web.configでMIMEタイプを定義したためです。開発サーバーにはこれが必要でしたが、ローカルのIISはMIMEタイプを複製したので嫌いでした... web.configからこれらを削除すると、js、css、およびロードされないイメージの問題はなくなりました。
これは認証の問題です。私の場合、以下の手順で解決しました:1- IISマネージャーに移動し、左側のペインでサーバールートを展開し、[サイト]ノードからWebアプリケーションを選択します。2-ホーム画面で、IISセクションに移動し、認証を選択します。3-匿名認証を有効にします。4-次に、[編集]を選択し、[匿名認証資格情報の編集]をアプリケーションプールIDに設定します。
これを修正するには:
インターネットインフォメーションサービス(IIS)に移動します
画像をロードしようとしているWebサイトをクリックします
IISセクションで、認証メニューを開き、Windows認証も有効にします。
本番サイトのコピーを操作するときにlocalhostテスト環境でサイトを開発するときに、過去に参考にした1つの提案。正規タグを必ずコメント化してください。
<!--<base href="http://www.example.com/">//-->
この原因の1つとして、アプリケーションがポート443(標準SSLポート)での実行を想定しており、ポート443がすでに使用されていることが考えられます。Skypeがコンピューターで実行されている間に開発者がアプリケーションを実行しようとすると、これに何度か遭遇しました。
信じられないことに、Skypeはポート443で動作します。これは私の考えでは恐ろしい設計上の欠陥です。アプリケーションが443ではなく444で実行しようとしている場合は、Skypeをシャットダウンすれば問題は解消します。
画像の場合
@Url.Content("~/assets/bg4.jpg")
スタイルでこれを使用します
style="background-image:url(@Url.Content("~/assets/bg4.jpg"))
ブラウザコンソールに403エラーが表示される場合は、MVCバンドル設定を確認してください。バンドル名は、プロジェクト内の既存のフォルダー名と一致してはなりません。
例えば。
bundles.Add(new StyleBundle("~/Content/css")...
...フォルダ構造$(ProjectDir)\ Content \ cssの場合、IISで問題が発生しますがプロジェクトに存在するは既存のフォルダー内に存在しないバンドルコンテンツを探しようとする。
代わりに次のようなものを使用してください:
bundles.Add(new StyleBundle("~/Content/cssbundle")...