web-dev-qa-db-de.com

Ressource, die als Stylesheet interpretiert, jedoch mit dem MIME-Typ "text/html" in ASP.NET übertragen wird IIS

ich habe eine Anmeldeseite, wenn die Seite von css entfernt wird.

Ich habe diese Nachricht von Chrome Debugger herausgefunden. Ich benutze asp.net 2008.

Irgendwelche Ideen?

<head id="Head1" runat="server"> 
<title>CalibPro</title> 
<link href="css/Login.css" rel="stylesheet" type="text/css" /> 
<link href="css/Common.css" rel="stylesheet" type="text/css" /> 
</head>

bearbeitet gemäß per @robx-Hinweis.

19
sansknwoledge

Scheint mir, als ob das Problem in Ihrer IIS Konfiguration liegt. Es ist möglicherweise so konfiguriert, dass .css-Dateien mit dem Text/html-MIME-Typ bereitgestellt werden.

Gehen Sie zur Konfiguration der MIME-Typen auf dem Webserver und prüfen Sie, ob Sie dort etwas erkennen können.

Der richtige MIME-Typ für .css-Dateien ist text/css.

Sie können sich die HTTP-Header-Parameter auch mit einem HTTP-Sniffer wie Fiddler ansehen.

Aktualisierung: Die akzeptierte Antwort sollte diejenige sein, auf die @ brett-pennings! Zeigt. Der statische Inhalt wird nur angezeigt, wenn der Fehler automatisch behoben wird.

37
Variant

Stellen Sie sicher, dass Sie "Statischer Inhalt" in IIS Windows-Features aktivieren.

IIS Settings

15
Brett Pennings

Dies ist ein Problem, wenn Sie die Umschreibungs-URL in IIS verwenden (in meinem Fall war es das). Sie müssen diesen Eintrag in Ihre web.config-Datei Ihres Web einfügen, bevor Sie den Eintrag umschreiben diese:

<rule name="CSS" stopProcessing="true">
    <match url=".css" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" />
    </conditions>
    <action type="None" />
</rule>
<rule name="mod_write" stopProcessing="true">
    <match url="^(.*)$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="%(REQUES_FILENAME)" matchType="IsDirectory" negate="true" />
        <add input="%(REQUES_FILENAME)" matchType="IsFile" negate="true" />
    </conditions>
    <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="false" />
</rule>
2
Elwi

Oh großer Gott! Dies war einer dieser Fehler, die scheinbar aus dem Nichts kommen ... Ich habe mir fast 1 Stunde lang den Kopf verkratzt und versucht herauszufinden, was nur eine bestimmte .css-Datei dazu brachte, eine im Chrome-Konsolenfenster sehr ähnliche Meldung anzuzeigen:

Resource interpreted as Stylesheet but transferred with MIME type text/plain

Sie sehen, es ist text/plain anstelle von text/html.

Die fragliche Datei war diese:

https://raw.github.com/LPology/Bootstrap-IE7Fix/master/css/bootstrap-ie7fix.css

Was ich in Visual Studio 2013 Ultimate gemacht habe, war:

  • Klicken Sie mit der rechten Maustaste auf den Ordner Content des Projekts und wählen Sie Hinzufügen Style Sheet aus.
  • Die Datei wurde in bootstrap-ie7fix.css umbenannt.
  • Der gesamte Inhalt der obigen .css-Datei wurde kopiert
  • Der gesamte Inhalt wurde in Visual Studio eingefügt und die Datei gespeichert

Diese neue Datei wurde in meiner Razor-Ansicht in einer ASP.NET MVC-App in der-Datei auf genau dieselbe alte standardisierte akzeptierte Weise referenziert.:

   <link rel="stylesheet" type="text/css" href="/../itvizionlogs/widgets/Content/bootstrap-ie7fix.css">

Aus irgendeinem verrückten/unbekannten Grund würde diese Datei in Chrome, Firefox und Internet Explorer nichts anzeigen. Was zum Teufel ist mit dieser Datei los, da alle anderen Dateien in genau demselben /Content-Verzeichnis gerade geladen werden?

Mein letzter Versuch war folgender:

Ich schätze, Visual Studio hat die Kodierung dieser Datei anfangs verschlüsselt oder so ähnlich!

1

Ich hatte dies mit webpack-dev-server, es war wegen eines Firewall-Problems, das den Internetzugang blockiert. Ich dachte anfangs nicht, dass es sich um Internet handelte, weil ich dachte, ich hätte alle meine CSS zusammengestellt, ohne auf externe Quellen angewiesen zu sein. Nach dem Graben habe ich jedoch eine andere CSS-Datei gefunden, in der versucht wurde, externe Schriftarten von fonts.gstatic.com zu laden, die zusammen mit meiner Firewall mein Problem verursachte.

0
Helzgate

Ich weiß nicht, ob Sie Ihr Projekt im Framework entwickelt haben. Ich hatte diese Fehler, als ich im ThinkPHP-Framework Entwickelt wurde. Der Grund ist, dass der Frameowrk einige Regeln über den Pfad hat der CSS-Datei einschließen, damit Sie bei Verwendung des Frameworks prüfen können, ob das Framework seine Regeln für den Pfad der externen CSS-Datei oder der Javascript-Datei hat.

0
xuxiaojian