CSS、画像、JSがIISに読み込まれない


126

私のすべてのアプリケーションは正常に機能していましたが、突然、IISの下のすべてのサイトがCSS、画像、スクリプトをロードしていません。ログインページにリダイレクトします。

ログインするとうまくいきます。例:mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png

私のローカルマシンでは、ログインしなくても問題なく動作します。


間違ったタグ付け、本当の質問ではない...
Renatas M. 2012

3
タグ付けされたバージョンへのロールバック私はので、考えて、私はこの動作を引き起こしているものを知っているとタグは関連しています。そうでない場合、私は投票を締め切ります。
Tim Medora 2012年

それは私がすべての答えを試したこのweb構成で問題ではありません。1つのアプリケーションを展開する前にすべてのサイトが正常に機能していたため、IISに問題があると思います。Iranにすべての影響を与える
Imran Rashid

@ImranRashid-このサイトはIISの別のサイトから設定を継承していますか?
Tim Medora 2012年

@Tim Medora-他のサイトから継承されていません。
Imran Rashid

回答:


185

問題はIISが静的コンテンツを提供していないことである可能性があり、ここで設定できます。 ここに画像の説明を入力してください

出典:http : //adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/

ウインドウズ10:

上記のダイアログのWindows 10バージョン


2
私は同様の問題を抱えていましたが、それがインストールの問題であることに気付きましたが、静的コンテンツを有効にすると問題が解決したようです!
ife labolz

5
これは私のベーコンを救いました、あなたはこれがデフォルトで有効になったと思いますが、Windows 10ではそうではありません。
ジャスティン

3
これはデフォルトではチェックされていません。
RayLoveless 2016

3
@RayLoveless不満なのは、静的コンテンツがMVCで機能するために有効になっているこのIIS機能にMVCが強く依存していることです。それらはそれほど結合されるべきではないと思います。たぶん.NET Coreがこれを修正するでしょう。:p
Matt Kocaj

2
あああああああああああああああああああああああぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁあ
Eric Wu

176

同じ問題がありました。WindowsServer 2012 R2上のIIS 8.5のASP.Net 4.5にWebアプリケーションをインストールすると、認証されていないページがCSS、JS、および画像をロードしませんでした。

  1. 静的コンテンツの役割をインストールしました
  2. 私のWebアプリケーションはIISのwwwrootフォルダーにあり、すべてのWindowsフォルダーのアクセス許可はそのままでした(IIS_IUSRSを含むデフォルトのアクセス許可)
  3. CSS、JS、画像を含むすべてのフォルダーの承認を追加しました。
  4. Windows共有にWebアプリケーションフォルダーがあったため、@ imran-rashidの提案に従って共有を削除しました

しかし、何も問題を解決していないようでした。次に、最後に、匿名ユーザーのIDをApp Pool Identityに設定してみましたが、機能し始めました。

認証機能をクリックします 匿名認証を編集する アプリプールIDに変更する

私は頭を数時間叩き、この反応が私の仲間の開発者の苦痛を救うことを願っています。

これが機能している理由を本当に知りたいのですが。何かご意見は?


1
これも私にとってはうまくいきました。これは、「特定のユーザー」が、アプリケーションプールのIDが行うフォルダーの場所へのアクセス許可を持っていなかったためと考えています。
dcinadr

4
数時間 ?それは私に4以上かかりました。ありがとう、それは私を助けてくれました:)
ティト

3
wwwrootフォルダを共有した後、突然この問題が発生しました。あなたの解決策はそれを修正しました。時間を割いて追加していただき、ありがとうございます。
リソース

1
伝説!どうもありがとう
デビッド

1
これは私があなたの投稿を検索しなければならなかった2番目の時間です。できれば100倍に投票します。Umbracoを使用していた-Documents \ Visual Studio 2013 \ Projectsを使用してローカルIISをセットアップした-追加されたがCPUName\IIS_IUSRS、それでもロードされない。再度、感謝します!
ロブスコット

18

同様のエラーが発生し、コンソールは次のようになりました。

エラー

私の問題は、会社が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/)。


1
賛成票。私はこの問題を抱えていました、アプリはステージに何も読み込まず、本番に読み込まれていました。@ Url.Content()も〜/で使用します。本番
クロス

17

web.configからstaticContentセクションを削除してみてください

<system.webServer>
    <staticContent>
        ...
    </staticContent>
</system.webServer>

staticContentの削除は機能しますが、私のフォントはすべて404になりますか?
Rajesh Sivasankaran 2017

私はこれについての専門家ではありませんが、おそらくWebサイトのプロパティの[HTTPヘッダー]タブでIISマネージャーを介してフォントの正しいMIMEタイプ宣言を追加する必要があります。
intrepidis 2017

1
開発中にいくつかの.woffファイルエントリがあるため、これで問題が解決しましたが、プロダクションでは同じセットアップで調整が必要です
guideX

intrepidisに感謝します。私の場合、あなたの提案がうまくいきました。乾杯!
user752746

15

これはあなたの質問に答えないかもしれませんが、私は新しいIISのインストールで同じ症状で頭を悩ませてきました。CSS、JS、画像が表示されませんでした。IIS 7.5に「静的コンテンツ」の役割がインストールされていないことが原因でした。


あなたは別の問題を抱えているかもしれませんが、私の問題は私がディレクトリをinetpubから移動したときにそれが私の問題を元に戻すときに権限を削除することでしたが修正されました。
Imran Rashid

7

おそらく、web.configでWindows認証が有効になっています。ローカルマシンでは、Windows資格情報が自動的に渡され、機能します。ライブサイトでは、あなたは匿名ユーザーとして扱われます(IE設定でこれを制御できますが、自分が何をしているのか本当に理解していない限り、これを変更しないでください)。

これにより、以下が発生します。

  • 明示的にログインする必要があります。
  • 認証されていないため、スクリプトやCSSなどのリソースはログインページで提供されません。

これは壊れておらず、意図したとおりに機能していますが、これを「修正」します。

  • ログインが必要ない場合は、web.configで認証タイプを変更します。
  • または承認ルールを指定するCSS、画像、スクリプトなどを含むディレクトリにweb.configを追加します。

認証モードはフォームではなくウィンドウですか?アプリケーションのWeb構成ファイルがマシン構成をオーバーライドしますか?これを引き起こしているIISの設定はありますか?
Imran Rashid

フォーム認証は、ログインプロンプトをトリガーし、スクリプトや画像などのリソースが提供されないようにします。web.configに必要な特定の変更については、他の回答を参照してください。IISに設定を保存すると、Web設定が変更されます。
Tim Medora 2012年

自分で解決します。ネットワークでwwwrootフォルダーを共有すると問題が発生します。ディレクトリの権限を変更します。共有を解除して、権限をデフォルトに設定した場合。それは解決しました:) Timに感謝します
Imran Rashid

6

これをweb.configに追加します

<location path="Images">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

パスは相対パスであり、ルートを追加すると解決する場合があります。パスを"~/Images"
StuperUserに

6

これを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>

6

それは私がそれが間違った許可を継承するフォルダを移動するウィンドウズ許可の問題でした。wwwrootフォルダーに移動して、iisユーザーにアクセス許可を追加すると、正常に機能し始めます。


1
同じ問題がありました。プロジェクトファイルをdesktopからwwwroot フォルダーに移動しただけです。さらに、アプリケーションプールに関連するネットワークサービスにフルコントロールを追加しました。
mihkov

3

私にとってこれをweb.config解決済みの問題に追加すると

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" >
      <remove name="UrlRoutingModule"/>    
    </modules>
</system.webServer>

2

私が苦労したのは、web.configでMIMEタイプを定義したためです。開発サーバーにはこれが必要でしたが、ローカルのIISはMIMEタイプを複製したので嫌いでした... web.configからこれらを削除すると、js、css、およびロードされないイメージの問題はなくなりました。


MIMEタイプが重複しているとは信じられません!少なくとも1時間は別のユーザー権限などを試しましたが、web.configでMIMEが重複してしまいました:-|
アーロンヒュードン2017年

2

これは認証の問題です。私の場合、以下の手順で解決しました:1- IISマネージャーに移動し、左側のペインでサーバールートを展開し、[サイト]ノードからWebアプリケーションを選択します。2-ホーム画面で、IISセクションに移動し、認証を選択します。3-匿名認証を有効にします。4-次に、[編集]を選択し、[匿名認証資格情報の編集]をアプリケーションプールIDに設定します。

匿名認証資格情報


私は同じ手順に従って、問題が解決しました。アリレザに感謝します。
Arvind Gautam

1

私の場合、

IISはですべてをロードlocalhostできますがapp.tag、からテンプレートファイルをロードできませんでした192.168.0.123

なぜなら.tag拡張子がリストになかったです。

IIS MIMEタイプ


1

これを修正するには:

インターネットインフォメーションサービス(IIS)に移動します

画像をロードしようとしているWebサイトをクリックします

IISセクションで、認証メニューを開き、Windows認証も有効にします。


1

本番サイトのコピーを操作するときにlocalhostテスト環境でサイトを開発するときに、過去に参考にした1つの提案。正規タグを必ずコメント化してください。

  <!--<base href="http://www.example.com/">//-->

1

上記の解決策をすべて試しても問題が解決しない場合は、ASP.NETのメソッドResolveClientUrl()の使用を検討してください。

例のスクリプト:

使用する代わりに

<script src="~/dist/js/app.min.js" ></script>

メソッドを使用する

<script src="<%= ResolveClientUrl("~/dist/js/app.min.js") %>" ></script>

これは私が助けていた友人のために働いた私の解決策でした!


1

私も同じ問題を抱えていました。私にとっては、IISのサーバーレベルでCache-Controlヘッダーがno-cache、no-storeに設定されていたことが原因でした。したがって、私のアプリケーションでは、以下をweb.configに追加する必要がありました。

<httpProtocol>
    <customHeaders>
        <remove name="Cache-Control" />
    </customHeaders>
</httpProtocol>

0

この原因の1つとして、アプリケーションがポート443(標準SSLポート)での実行を想定しており、ポート443がすでに使用されていることが考えられます。Skypeがコンピューターで実行されている間に開発者がアプリケーションを実行しようとすると、これに何度か遭遇しました。

信じられないことに、Skypeはポート443で動作します。これは私の考えでは恐ろしい設計上の欠陥です。アプリケーションが443ではなく444で実行しようとしている場合は、Skypeをシャットダウンすれば問題は解消します。


0

追加した app.UseStaticFiles();このコードを、Configureメソッドのstarup.csたが、修正されました。

そして、このフォルダのアクセス権を確認してください。



0

私の場合、javascript、png、またはcssファイルのいずれも読み込まれなかったときに、上記の答えのほとんどを試しましたが、どれもうまくいっていないようでした。

私はようやく " リクエストフィルター "を見つけ、実際に.js、.png、.cssを有効化/許可されたファイルタイプとして追加する必要がありました。

この変更を行うと、すべてのファイルが適切に提供されていました。


0

ブラウザコンソールに403エラーが表示される場合は、MVCバンドル設定を確認してください。バンドル名は、プロジェクト内の既存のフォルダー名と一致してはなりません。

例えば。

bundles.Add(new StyleBundle("~/Content/css")...

...フォルダ構造$(ProjectDir)\ Content \ cssの場合、IISで問題が発生しますがプロジェクトに存在するは既存のフォルダー内に存在しないバンドルコンテンツを探しようとする。

代わりに次のようなものを使用してください:

bundles.Add(new StyleBundle("~/Content/cssbundle")...

0

この問題は、IISがJS、CSS、画像ファイルなどの静的コンテンツをレンダリングしない場合に発生します。

この問題を解決するには、以下の手順に従う必要があります。

[コントロールパネル]> [Windowsの機能を有効または無効にする]> [インターネットインフォメーションサービス]> [World Wide Webサービス]> [共通のHTTP機能]> [静的コンテンツ]に移動します。

静的コンテンツがオンになっていることを確認します。

ビンゴ。これで完了です。ページをハードリロードすると、すべての静的コンテンツが表示されます。


0

私はまったく同じ問題を抱えており、すべての提案を試みましたが何も得られませんでした。何時間も悩ませた。なんらかの理由でISPがポート80をブロックしていることがわかりました。

アドバイス:あなたのトラフィックを確認してください。ポート80がローカル(つまりファイアウォール)と外部の両方で機能することを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.