CSS, Images, JS ne se charge pas dans IIS

Toutes mes applications fonctionnaient bien mais soudainement tous les sites sous IIS ne chargent pas css, images, scripts. Il redirige vers la page de connexion.

Si je me connecte, cela fonctionne bien. par exemple mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png

Sur ma machine locale, cela fonctionne bien sans connexion.

95
demandé sur tereško 2012-05-09 11:58:46

16 réponses

Le problème peut être que IIS ne sert pas de contenu statique, que vous pouvez configurer ici: entrez la description de l'image ici

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

147
répondu Matt Kocaj 2014-02-12 04:45:09

J'ai eu le même problème, une page non authentifiée ne chargerait pas le CSS, le JS et les Images lorsque j'ai installé mon application web dans ASP.Net 4.5 dans IIS 8.5 sur Windows Server 2012 R2.

  1. j'ai installé le rôle de contenu statique
  2. Mon Application Web était dans le dossier wwwroot d'IIS et toutes les autorisations du dossier Windows étaient intactes (celles par défaut, y compris IIS_IUSRS)
  3. j'ai ajouté l'autorisation pour tous les dossiers qui contenaient les CSS, JS et images.
  4. j'avais le dossier de l'application web sur un partage windows, j'ai donc supprimé le partage comme suggéré par @ imran-rashid

Pourtant, rien ne semblait résolu le problème. Puis, finalement, j'ai essayé de définir l'identité de l'utilisateur anonyme sur L'identité du Pool D'applications et cela a commencé à fonctionner.

Cliquez sur la fonction D'authentificationModifier L'authentification anonymePasser à L'identité du Pool D'applications

Je me suis cogné la tête pendant quelques heures et j'espère que cette réponse sauvera l'agonie de mes collègues développeurs.

Je voudrais vraiment savoir pourquoi cela fonctionne. Tout pensées?

130
répondu Moiz Tankiwala 2018-04-16 19:26:00

Cela pourrait ne pas répondre à votre question, mais je me suis cogné la tête avec les mêmes symptômes avec une nouvelle installation IIS. CSS, JS et les images n'apparaissaient pas. Était dû au rôle "contenu statique" n'étant pas installé dans IIS 7.5.

14
répondu user23462 2013-07-30 17:17:01

Essayez de supprimer la sectionstaticContent de votre site web .config .

<system.webServer>
    <staticContent>
        ...
    </staticContent>
</system.webServer>
14
répondu intrepidis 2016-06-29 13:34:54

, j'ai eu une erreur similaire, ma console ressemblait à ceci:

erreur

Mon problème était que j'exécutais mon site dans un sous-dossier puisque la société utilisait un domaine principal et aucun sous-domaine. Comme ceci:

Host.com/app1

Host.com/app2

Mon code ressemblait à ceci pour inclure des scripts qui fonctionnaient bien sur localhost mais pas dans app1 ou app2:

<link rel="stylesheet" type="text/css" href="/Content/css/font-awesome.min.css" />

A ajouté un signe tilde ~ à src et puis tout travaillé:

<link rel="stylesheet" type="text/css" href="~/Content/css/font-awesome.min.css" />

Explication de ~ vs /:

  • / - racine du Site
  • ~/ - répertoire Racine de l'application

/ sera de retour à la racine du site (http://host.com/),

~/ retourne la racine de l'application (http://host.com/app1/).

13
répondu Ogglas 2016-11-14 13:27:14

Ajoutez ceci à votre site web.config

<location path="Images">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>
6
répondu Mathias F 2012-05-09 08:15:39

C'était un problème d'autorisation windows je déplace le dossier qui hérite de mauvaises autorisations. Lorsque je me déplace dans le dossier wwwroot et ajoute l'autorisation à l'utilisateur iis, cela commence à fonctionner correctement.

6
répondu Imran Rashid 2012-11-28 22:59:47

L'authentification Windows est probablement activée sur votre site web.config. Sur une machine locale, vos informations D'identification Windows sont automatiquement transmises et cela fonctionne. Sur un site en direct, vous êtes traité comme un utilisateur anonyme (IE paramètre peut contrôler cela, mais ne modifiez pas cela sauf si vous savez vraiment ce que vous faites).

Cela provoque ce qui suit:

  • vous devez vous connecter explicitement.
  • les ressources comme les scripts et les CSS ne sont pas servies sur la page de connexion car vous ne l'êtes pas authentifier.

Ce n'est pas cassé, juste fonctionner comme prévu, mais pour "réparer" ceci:

  • modifiez le type d'authentification sur le web.la configuration, si vous ne voulez pas de connexion.
  • et / ou ajouter un web.config dans le(s) répertoire (S) contenant CSS, images, scripts, etc. qui spécifie les règles d'autorisation.
5
répondu Tim Medora 2012-05-09 08:06:14

Utilisez ceci dans la section configuration de votre site web.fichier de configuration:

<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>
5
répondu Rohit Vyas 2012-05-09 08:19:51

Pour moi, l'ajout de ceci dans le web.config a résolu le problème

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" >
      <remove name="UrlRoutingModule"/>    
    </modules>
</system.webServer>
2
répondu ihebiheb 2016-01-17 15:54:31

Dans mon cas,

IIS peut charger tout avec localhost, mais n'a pas pu charger mes fichiers de modèle app.tag à partir de 192.168.0.123

Parce que l'extension .tag n'était pas dans la liste.

Les types MIME IIS

1
répondu Hiep 2015-12-17 11:04:39

Pour résoudre ce problème:

Aller à Internet Information Service (IIS)

Cliquez sur votre site web sur lequel vous essayez de charger l'image

Sous la section IIS, ouvrez le menu authentification et activez également L'authentification Windows.

1
répondu Naijalivemedia 2016-01-06 14:29:24

Une suggestion que j'ai trouvée utile dans le passé lors du développement de sites dans l'environnement de test localhost lorsque je travaille avec une copie du site de production. Assurez-vous de commenter les balises canoniques:

  <!--<base href="http://www.example.com/">//-->
1
répondu yardpenalty 2016-05-07 07:02:24

Mon heure de douleur était due à la définition de types MIME sur le web.config. J'en avais besoin pour le serveur de développement mais IIS local le détestait car il dupliquait les types MIME... une fois que je les ai retirés du web.config le problème avec js, css et les images ne se chargeant pas est parti.

1
répondu peroija 2017-07-29 22:49:19

Une cause possible de ceci est que votre application s'attend à s'exécuter sur le port 443 (port SSL standard) et que le port 443 est déjà utilisé. J'ai rencontré cela plusieurs fois avec des développeurs essayant d'exécuter notre application pendant que Skype est en cours d'exécution sur leurs ordinateurs.

Incroyablement, Skype fonctionne sur le port 443. C'est un horrible défaut de conception à mon avis. Si vous voyez votre application essayer de fonctionner sur 444 au lieu de 443, arrêtez Skype et le problème disparaîtra.

0
répondu Robert MacGrogan 2016-03-09 15:55:12

Si vous avez essayé toutes les solutions ci-dessus et avez encore des problèmes, envisagez d'utiliser la méthode ResolveClientUrl () de ASP.NET .

Un script par Exemple :

Au lieu d'utiliser

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

Utilisez la méthode

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

C'était ma solution qui a fonctionné pour un ami que j'aidais!

0
répondu Keitel Jovin 2017-06-07 17:47:00