Alle meine Anwendungen funktionierten einwandfrei, aber plötzlich laden alle Websites unter IIS keine CSS, Bilder oder Skripte mehr. Es wird zur Anmeldeseite weitergeleitet.
Wenn ich mich anmelde, funktioniert es gut. zB mysite.com/Account/LogOn?ReturnUrl=%2fpublic%2fimages%2ficons%2f41.png
Auf meinem lokalen Computer funktioniert es ohne Anmeldung.
c#
asp.net-mvc
iis
Imran Rashid
quelle
quelle
Antworten:
Das Problem kann sein, dass IIS keinen statischen Inhalt bereitstellt, den Sie hier einrichten können:
Quelle: http://adilmughal.com/blog/2011/11/iis-7-not-loading-css-and-image/
Windows 10:
quelle
Ich hatte das gleiche Problem: Eine nicht authentifizierte Seite lud CSS, JS und Images nicht, wenn ich meine Webanwendung in ASP.Net 4.5 in IIS 8.5 unter Windows Server 2012 R2 installierte.
Nichts schien das Problem zu lösen. Dann habe ich endlich versucht, die Identität des anonymen Benutzers auf die App-Pool-Identität zu setzen, und es hat funktioniert.
Ich habe ein paar Stunden lang mit dem Kopf geschlagen und hoffe, dass diese Antwort den anderen Entwicklern die Qual erspart.
Ich würde wirklich gerne wissen, warum das funktioniert. Irgendwelche Gedanken?
quelle
CPUName\IIS_IUSRS
und immer noch nicht geladen. Danke noch einmal!Ich hatte einen ähnlichen Fehler, meine Konsole sah folgendermaßen aus:
Mein Problem war, dass ich meine Site in einem Unterordner ausführte, da das Unternehmen eine Top-Domain und keine Sub-Domains verwendete. So was:
host.com/app1
host.com/app2
Mein Code sah so aus, weil er Skripte enthielt, die auf localhost gut funktionierten, aber nicht in app1 oder app2:
Ein Tilde-Zeichen
~
zu src hinzugefügt und dann hat alles funktioniert:Erklärung von
~
vs/
:/
- Site-Root~/
- Stammverzeichnis der Anwendung/
gibt das Stammverzeichnis der Site zurück (http://host.com/
),~/
gibt das Stammverzeichnis der Anwendung zurück (http://host.com/app1/
).quelle
Versuchen Sie, den Abschnitt staticContent aus Ihrer web.config zu entfernen .
quelle
Dies beantwortet Ihre Frage möglicherweise nicht, aber ich habe mir bei einer neuen IIS-Installation den Kopf mit den gleichen Symptomen geschlagen. CSS, JS und Bilder wurden nicht angezeigt. Wurde aufgrund der Rolle "Statischer Inhalt" nicht in IIS 7.5 installiert.
quelle
In Ihrer web.config ist wahrscheinlich die Windows-Authentifizierung aktiviert. Auf einem lokalen Computer werden Ihre Windows-Anmeldeinformationen automatisch übergeben und es funktioniert. Auf einer Live-Site werden Sie als anonymer Benutzer behandelt (die IE-Einstellung kann dies steuern, aber ändern Sie dies nur, wenn Sie wirklich wissen, was Sie tun).
Dies verursacht Folgendes:
Dies ist nicht kaputt, funktioniert nur wie beabsichtigt, sondern um dies zu "beheben":
quelle
Fügen Sie dies Ihrer web.config hinzu
quelle
"~/Images"
Verwenden Sie dies im Konfigurationsabschnitt Ihrer web.config-Datei:
quelle
Es war ein Windows-Berechtigungsproblem. Ich verschiebe den Ordner, der falsche Berechtigungen erbt. Wenn ich in den Ordner wwwroot gehe und meinem Benutzer die Berechtigung hinzufüge, funktioniert es einwandfrei.
quelle
desktop
demwwwroot
Ordner verschoben. Außerdem habe ich dem Netzwerkdienst, der sich auf den Anwendungspool bezieht, die volle Kontrolle hinzugefügt.Für mich hat das Hinzufügen in
web.config
das Problem behobenquelle
Meine Stunde des Schmerzes war auf die Definition von MIME-Typen in der web.config zurückzuführen. Ich brauchte dies für den Entwicklungsserver, aber lokaler IIS hasste es, weil es MIME-Typen duplizierte ... Sobald ich diese aus der web.config entfernte, verschwand das Problem mit js, css und Bildern, die nicht geladen wurden.
quelle
Dies ist ein Authentifizierungsproblem. In meinem Fall wurde dies durch die folgenden Schritte gelöst: 1- Gehen Sie zum IIS-Manager, erweitern Sie im linken Bereich das Serverstammverzeichnis und wählen Sie Ihre Webanwendung vom Knoten Sites aus. 2- Gehen Sie auf dem Startbildschirm zum Abschnitt IIS und wählen Sie Authentifizierung. 3- Aktivieren Sie die anonyme Authentifizierung. 4- Wählen Sie dann Bearbeiten und setzen Sie Anonyme Authentifizierungsdaten bearbeiten auf Identität des Anwendungspools.
quelle
In meinem Fall,
IIS kann alles mit laden
localhost
, aber meine Vorlagendateienapp.tag
von nicht laden192.168.0.123
weil die
.tag
Erweiterung nicht in der Liste war.quelle
Um dies zu beheben:
Gehen Sie zu Internet Information Service (IIS).
Klicken Sie auf Ihre Website, auf die Sie ein Bild laden möchten
Öffnen Sie im Abschnitt IIS das Menü Authentifizierung und aktivieren Sie auch die Windows-Authentifizierung.
quelle
Ein Vorschlag, den ich in der Vergangenheit bei der Entwicklung von Standorten in einer lokalen Host-Testumgebung als hilfreich empfunden habe, wenn ich mit einer Kopie des Produktionsstandorts arbeite. Stellen Sie sicher, dass Sie die kanonischen Tags auskommentieren:
quelle
Wenn Sie alle oben genannten Lösungen ausprobiert haben und dennoch Probleme haben, sollten Sie die Methode ResolveClientUrl () von ASP.NET verwenden.
Ein Skript zum Beispiel:
Anstatt zu verwenden
Verwenden Sie die Methode
Dies war meine Lösung, die für einen Freund funktionierte, dem ich half!
quelle
Ich hatte das gleiche Problem. Für mich lag es daran, dass der Cache-Control-Header auf Serverebene in IIS auf No-Cache, No-Store gesetzt wurde. Für meine Bewerbung musste ich meiner web.config Folgendes hinzufügen:
quelle
Eine mögliche Ursache hierfür ist, dass Ihre Anwendung voraussichtlich auf Port 443 (Standard-SSL-Port) ausgeführt wird und Port 443 bereits verwendet wird. Ich bin mehrmals darauf gestoßen, als Entwickler versuchten, unsere Anwendung auszuführen, während Skype auf ihren Computern ausgeführt wird.
Unglaublicherweise läuft Skype auf Port 443. Dies ist meiner Meinung nach ein schrecklicher Designfehler. Wenn Sie sehen, dass Ihre Anwendung versucht, auf 444 statt auf 443 ausgeführt zu werden, fahren Sie Skype herunter, und das Problem wird behoben.
quelle
Ich habe
app.UseStaticFiles();
diesen Code in starup.cs der Configure-Methode hinzugefügt , als er behoben wurde.Und überprüfen Sie Ihre Berechtigung für diesen Ordner.
quelle
Für Bilder verwenden
Verwenden Sie dies für einen Stil
quelle
In meinem Fall, als keine meiner Javascript-, PNG- oder CSS-Dateien geladen wurde, habe ich die meisten der oben genannten Antworten ausprobiert und keine schien den Trick zu tun.
Ich fand schließlich " Anforderungsfilter " und musste tatsächlich .js, .png, .css als aktivierten / akzeptierten Dateityp hinzufügen.
Nachdem ich diese Änderung vorgenommen hatte, wurden alle Dateien ordnungsgemäß bereitgestellt.
quelle
Wenn in Ihrer Browserkonsole 403 Fehler angezeigt werden, überprüfen Sie Ihre MVC Bundle-Konfiguration. Bundle-Namen sollten nicht mit vorhandenen Ordnernamen in Ihrem Projekt übereinstimmen.
z.B.
... würde Probleme für IIS verursachen, wenn die Ordnerstruktur $ (ProjectDir) \ Content \ css in Ihrem Projekt vorhanden ist, da versucht wird, im vorhandenen Ordner nach Bundle-Inhalten zu suchen, die nicht vorhanden sind.
Verwenden Sie stattdessen einfach etwas wie:
quelle
Dieses Problem tritt auf, wenn IIS den statischen Inhalt wie Ihre JS-, CSS- und Image-Dateien nicht rendert.
Um dieses Problem zu beheben, müssen Sie die folgenden Schritte ausführen:
Gehen Sie zu Systemsteuerung> Windows-Funktionen aktivieren oder deaktivieren> Internetinformationsdienste> World Wide Web Services> Allgemeine HTTP-Funktionen> Statischer Inhalt.
Stellen Sie sicher, dass statischer Inhalt aktiviert ist.
Bingo. Und du bist fertig. Laden Sie die Seite neu und Sie können alle statischen Inhalte sehen.
quelle
Ich hatte genau das gleiche Problem, versuchte alle Vorschläge, bekam aber nichts. Hat mich stundenlang nervt. Es stellte sich heraus, dass mein ISP Port 80 aus bestimmten Gründen blockiert hat.
Tipp: Überprüfen Sie Ihren Verkehr. Stellen Sie sicher, dass Port 80 sowohl lokal (dh Firewall) als auch extern funktioniert.
quelle