Leider hat Firefox hier einen dummen Fehler ... die Pfade sind relativ zum Pfad der Seite, statt relativ zur Position der CSS-Datei zu sein. Das bedeutet, wenn Sie Seiten an verschiedenen Positionen im Baum haben (zum Beispiel Default.aspx im Stammverzeichnis und Information.aspx im Ansichtsordner) gibt es keine Möglichkeit, dass relative Pfade funktionieren. (IE löst die Pfade korrekt relativ zum Standort der CSS-Datei.)
Das Einzige, was ich finden konnte, ist dieser Kommentar auf http://www.west-wind.com/weblog/posts/269.aspx aber, um ehrlich zu sein, ist es mir noch nicht gelungen, es zum Laufen zu bringen. Wenn ich es schaffe, werde ich diesen Kommentar bearbeiten:
re: Sinnvolle Verwendung von ASP.Net-Pfaden von Russ Brooks 25. Februar 2006 @ 8:43 Uhr
Niemand hat Brants Frage vollständig beantwortet bezüglich der Bildpfade innerhalb der CSS Datei selbst. Ich habe die Antwort. Die Frage war: "Wie verwenden wir anwendungsrelative Bildpfade INNERHALB der CSS-Datei?" Ich war auch lange Zeit von diesem Problem frustriert, also habe ich gerade die letzten 3 Stunden damit verbracht, eine Lösung zu finden.
Die Lösung besteht darin, Ihre CSS-Dateien durch den ASPX-Seiten-Handler laufen zu lassen, dann ein kleines Stück Servercode in jedem der Pfade zu verwenden, um den Applikations-Stamm-Pfad auszugeben. Bereit?
-
Fügen Sie der web.config hinzu:
-
In Ihrem CSS verwenden Sie die Request.ApplicationPath-Eigenschaft überall dort, wo ein Pfad existiert, wie folgt:
content { background: url(<%= Request.ApplicationPath %>/images/bg_content.gif) repeat-y; }
-
.NET gibt ASPX-Seiten standardmäßig mit dem MIME-Typ "text/html" aus, folglich werden Ihre neuen serverseitigen CSS Seiten mit diesem MIME-Typ ausgeliefert, was dazu führt, dass Nicht-IE-Browser die CSS-Datei nicht korrekt lesen. Wir müssen dies überschreiben, um "text/css" zu sein. Fügen Sie einfach diese Zeile als erste Zeile Ihrer CSS-Datei hinzu:
<%@ ContentType="text/css" %>