Endung der CSS-Datei egal?
Hans
- sonstiges
0 MudGuard0 Axel Richter0 MudGuard0 Axel Richter
0 Fabian Transchel0 MudGuard
0 Tobias K.
Hallo,
eine kurze Frage: Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?
Danke,
Hans
Hi,
eine kurze Frage: Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?
Im Prinzip ist es egal, da bei http der Inhaltstyp über den content-type header festgelegt wird.
Aber:
1. richtet sich diese Content-Type-Header-Angabe bei den meisten Webservern nach der Dateiendung (und bei .css wird dann eben text/css geschickt)
2. gibt es da einen sehr weit verbreiteten Browser, der alles mögliche beachtet, aber keine Standards - und da kann es bei falscher Endung durchaus passieren, daß er das stylesheet dann als HTML-Code oder als Javascript fehlinterpretiert...
Was spricht denn Deiner Meinung nach gegen die Endung .css?
cu,
Andreas
Hallo,
eine kurze Frage: Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?
Im Prinzip ist es egal, da bei http der Inhaltstyp über den content-type header festgelegt wird.
Aber:
- gibt es da einen sehr weit verbreiteten Browser, der alles mögliche beachtet, aber keine Standards - und da kann es bei falscher Endung durchaus passieren, daß er das stylesheet dann als HTML-Code oder als Javascript fehlinterpretiert...
Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
<link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
Hattest Du den gemeint? ;-))
viele Grüße
Axel
Hi,
- gibt es da einen sehr weit verbreiteten Browser, der alles mögliche beachtet, aber keine Standards - und da kann es bei falscher Endung durchaus passieren, daß er das stylesheet dann als HTML-Code oder als Javascript fehlinterpretiert...
Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
<link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
Hattest Du den gemeint? ;-))
Welchen Content-Type hattest Du im header der CSS-Datei mitgeschickt?
Wenn Du Deinen Server nicht umkonfiguriert hast, dürfte das text/plain gewesen sein.
Wie hat welcher Deiner Browser darauf reagiert?
cu,
Andreas
Hallo,
Welchen Content-Type hattest Du im header der CSS-Datei mitgeschickt?
Wenn Du Deinen Server nicht umkonfiguriert hast, dürfte das text/plain gewesen sein.
Wie hat welcher Deiner Browser darauf reagiert?
Ja, prinzipiell hast Du recht. Allerdings kann man es auch so sehen:
Alle angegebenen Browser, außer Netscape7, waren so fehlertolerant, eine im HTML als type="text/css" referenzierte Datei auch als CSS zu interpretieren, es zumindest zu versuchen.
Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.
viele Grüße
Axel
Hi,
Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.
Wenn der IE das nur in diesen Fällen machen würde...
siehe auch oben bereits genanntes Beispiel: http://test.andreas-waechter.de/contenttype.gif
cu,
Andreas
Hallo,
Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.
Wenn der IE das nur in diesen Fällen machen würde...
Andere Fälle sind anders zu betrachten;-))
siehe auch oben bereits genanntes Beispiel: http://test.andreas-waechter.de/contenttype.gif
Ja, ein image/gif als HTML zu interpretieren ist Unsinn. Das macht ja auch nur der IE.
Naja, zumindest kann Hans hieran sehen, was er sich mit dem Umbenennen der CSS-Dateien einhandeln kann.
viele Grüße
Axel
Hi,
Damit das nicht als nächstes Argument kommt: Das Interpretieren von fehlerhaftem Code gehört für mich _nicht_ zur Fehlertoleranz. Das tolerieren eines abweichenden Content-Type, wenn der "gewünschte" Content-Type angegeben ist, sehe ich allerdings als Fehlertoleranz, nicht unbedingt als Fehlerhaftigkeit.
Nachtrag: noch ein Beispiel:
um ein Codebeispiel zu haben, richte ich es so ein, daß eine HTML-Seite absichtlich als text/plain geschickt wird.
Ist es hier zu tolerieren, daß ein Browser dennoch das HTML interpretiert? Ich meine: nein.
cu,
Andreas
Hi Axel,
Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
<link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
Hattest Du den gemeint? ;-))
Eigentoooooooooor. *g*
Natürlich nimmt der NN7 sie nicht, denn Windoof liefert sie ja als text/plain aus.
Du musst deinem Browser (am besten mit einem content-type-Header) schon sagen, dass da text/css drin ist...
Fabian
Hi,
Natürlich nimmt der NN7 sie nicht, denn Windoof liefert sie ja als text/plain aus.
Was bitte hat Windows (ein Betriebssystem) damit zu tun?
Es hängt vom Webserver ab.
cu,
Andreas
Hi Andreas,
Natürlich nimmt der NN7 sie nicht, denn Windoof liefert sie ja als text/plain aus.
Was bitte hat Windows (ein Betriebssystem) damit zu tun?
Die Datei muss nciht vom Webserver abgerufen werden, sondern kann auch über das file-Protokoll angefordert werden. In dem Falle wird als Content-Type text/plain für .txt geliefert.
Es hängt vom Webserver ab.
Wenn einer verwendet wird, ja.
Fabian
Hi,
Einem gerade absolvierten Test mit MSIE5.5, Opera6.05 und Netscape7 unter WinNT4.0 und einer mit
<link rel="stylesheet" href="css/screen.txt" media="screen" type="text/css">
referenzierten CSS-Datei entsprechend, heißt dieser, keine Standards interpretierende, Browser Netscape7.
Hattest Du den gemeint? ;-))
Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif
Was kriegst Du in welchem Browser angezeigt?
cu,
Andreas
Hi Andreas
Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif
Was kriegst Du in welchem Browser angezeigt?
Opera 6.03: Platzhalter für ein GIF-Image
Netscape 7.0: Platzhalter für ein GIF-Image
Netscape 4.77: Platzhalter für ein GIF-Image
Konqueror 2.2.2: Platzhalter für ein GIF-Image
Aber ViewSource zeigt bei allen den HTML-Quelltext an.
Von Lynx kommt immerhin die Nachricht "display: Not a GIF Image file" und es wird ImageMagick als Bildbetrachter mit dessen Logo geöffnet.
wget sagt: HTTP request sent, awaiting response... 200 OK
Length: 323 [image/gif]
Verwirrte Grüße
Johannes
Hi,
Opera 6.03: Platzhalter für ein GIF-Image
Netscape 7.0: Platzhalter für ein GIF-Image
Netscape 4.77: Platzhalter für ein GIF-Image
Konqueror 2.2.2: Platzhalter für ein GIF-Image
Richtig. Es wird ein image/gif übertragen, das aber nicht das korrekte gif-Format hat (die Ressource enthält den Sourcecode einer HTML-Seite).
fehlt noch: IE 5.0, IE 5.5, IE 6.0: es wird die HTML-Seite angezeigt!
Aber ViewSource zeigt bei allen den HTML-Quelltext an.
Klar, der Inhalt der Ressource ist HTML-Text.
Von Lynx kommt immerhin die Nachricht "display: Not a GIF Image file" und es wird ImageMagick als Bildbetrachter mit dessen Logo geöffnet.
Gleiches Verhalten wie die anderen Browser (es kommt ein image/gif an...)
wget sagt: HTTP request sent, awaiting response... 200 OK
Length: 323 [image/gif]
Verwirrte Grüße
Wieso verwirrt? Ich habe eine HTML-Datei als .gif abgespeichert, damit sie als gif ausgeliefert wird.
IE zeigt die Ressource fehlerhafterweise als HTML an.
cu,
Andreas
Hi Andreas
fehlt noch: IE 5.0, IE 5.5, IE 6.0: es wird die HTML-Seite angezeigt!
Konnt ich unter Linux nicht ausprobieren.
Verwirrte Grüße
Wieso verwirrt? Ich habe eine HTML-Datei als .gif abgespeichert, damit sie als gif ausgeliefert wird.
Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
Oder er würde einen Übertragunsfehler melden *g*
Schöne Grüße
Johannes
Hi
Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
Damit meine ich natürlich, dass er fragt ob die Fehlerhafte Datei trotzdem noch als GIF interpretiert wird.
Außerdem ist es IMHO unlogisch, wenn die Datei als GIF angezeigt wird, die Optione ViewSource zuzulassen. Bei sonstigen Grafiken kann ich das ja auch nicht.
Schöne Grüße
Johannes
Hi,
fehlt noch: IE 5.0, IE 5.5, IE 6.0: es wird die HTML-Seite angezeigt!
Konnt ich unter Linux nicht ausprobieren.
Läuft der nicht unter Wine? ;-) ;-) ;-)
Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
Oder er würde einen Übertragunsfehler melden *g*
Nein, einen Übertragungsfehler zu melden wäre falsch - die Übertragung hat ja einwandfrei geklappt.
Korrekt wäre, einen Bildformat-Fehler zu melden.
cu,
Andreas
Hallo Andreas,
Läuft der nicht unter Wine? ;-) ;-) ;-)
Ja: http://www.christian-seiler.de/temp/iexplore.png
Du erinnerst mich gerade daran, dass ich mal probieren wollte, alle drei Versionen (5.0, 5.5, 6.0) parallel zum Laufen zu bringen... (unter wine)
Viele Grüße,
Christian
Hi Andreas
Läuft der nicht unter Wine? ;-) ;-) ;-)
Bei mir nicht *g*. Das bedeutet ich hab ihn nicht installiert. Ich hab auf meiner Platte auch noch Windows, wenn da irgendwas kaputt geht störts mich nicht.
Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
Oder er würde einen Übertragunsfehler melden *g*Nein, einen Übertragungsfehler zu melden wäre falsch - die Übertragung hat ja einwandfrei geklappt.
Deshalb das *g*. Vergleich Erwartetes Format mit Erhaltenem Format: Formate ungleich. Folgerung: Nicht das richtige übertragen.
Korrekt wäre, einen Bildformat-Fehler zu melden.
Genau, aber dann könnte man sich nicht mehr über die Browserhersteller aufregen.
Noch einen schönen Abend
Johannes
Hallo,
Wieso verwirrt? Ich habe eine HTML-Datei als .gif abgespeichert, damit sie als gif ausgeliefert wird.
Darüber, was die Browserhersteller sich einfallen lassen. Mein selbstprogrammierter (rein hypothethischer) Browser würde mich fragen ob er die Datei als GIF interpretieren soll bzw. die Voreinstellungen abfragen.
Ich glaube, dieses Feature hättest Du bald satt;-). Das müsste er Dich nämlich dann bei jedem Bild fragen.
Er bekommt auf Anforderung einen content-type: image/gif vom Server. Er kann Daten empfangen. Er kann die Daten nur nicht als Bild rendern, also zeigt er einen Platzhalter an. Da ist schon in Ordnung so. Das Selbe passiert, wenn Du Bilder im ASCII-Modus auf den Server hochgeladen hast. Nur der IE rendert fälschlicherweise HTML, weil er zu "fehlertolerant" ist.
Oder er würde einen Übertragunsfehler melden *g*
Nö. Die Übertragung funktioniert doch.
viele Grüße
Axel
Hi Axel
Ich glaube, dieses Feature hättest Du bald satt;-). Das müsste er Dich nämlich dann bei jedem Bild fragen.
Nein, nur wenn er das Bild nicht anzeigen kann und merkt, dass es eine HTML-Datei ist.
Er bekommt auf Anforderung einen content-type: image/gif vom Server. Er kann Daten empfangen. Er kann die Daten nur nicht als Bild rendern, also zeigt er einen Platzhalter an. Da ist schon in Ordnung so. Das Selbe passiert, wenn Du Bilder im ASCII-Modus auf den Server hochgeladen hast. Nur der IE rendert fälschlicherweise HTML, weil er zu "fehlertolerant" ist.
Oder er würde einen Übertragunsfehler melden *g*
Nö. Die Übertragung funktioniert doch.
Das habe ich hier [pref:t=42490&m=232414] schon erklärt.
Schöne Grüße
Johannes
Hallo,
Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif
Was kriegst Du in welchem Browser angezeigt?
MSIE5.5 zeigt HTML
Opera6.05 zeigt ein Bild
Netscape7 zeigt ein Bild
Das ist aber "etwas" anders gelagert. Bei diesem Beispiel fordert der Browser ein Bild an und bekommt einen Content-Type image/gif.
Beim CSS-Beispiel wird aber ein type="text/css" angefordert. Da kann man es schon als fehlertolerant ansehen, wenn zumindest auch ein daraufhin geliefertes text/plain-Dokument als CSS interpretiert wird. Die Programmierer von Opera sehen das offensichtlich auch so.
viele Grüße
Axel
Hi,
Hallo,
Mach doch mal folgenden Test: http://test.andreas-waechter.de/contenttype.gif
Was kriegst Du in welchem Browser angezeigt?
MSIE5.5 zeigt HTML
Eben. Das ist falsch.
Opera6.05 zeigt ein Bild
Netscape7 zeigt ein Bild
Korrektes Verhalten. Da der Inhalt der Ressource aber kein korrektes gif-Format ist, wird nur ein Platzhalter angezeigt.
Bei diesem Beispiel fordert der Browser ein Bild an und bekommt einen Content-Type image/gif.
Nein. Der Browser fordert kein Bild an. Der Browser fordert eine Ressource an, deren URL zufällig auf .gif endet.
Das selbe funktioniert auch, wenn die Ressource auf .bla endet und image/gif als content-type hat.
IE würde das trotzdem als HTML anzeigen (falls .bla auf Deinem Rechner zufällig ein gültiges Bildformat wäre, ersetze .bla durch eine nicht-definierte Endung).
cu,
Andreas
Moin,
MSIE5.5 zeigt HTML
Eben. Das ist falsch.
Und damit niemand sagen, Microsoft wäre knauserig mit der Doku haben sie diesen Bug der schon seit Version 4 existiert auch ausnehmend gut dokumentiert: http://msdn.microsoft.com/workshop/networking/moniker/overview/appendix_a.asp.
Und damit niemand sagen kann, derartiges Verhalten wäre vom Standard gedeckt hier noch die passende Stelle aus RFC 2616 Abschnitt 7.2.1 dazu:
| If and only if the media type is not given by a Content-Type field,
| the recipient MAY attempt to guess the media type via inspection of
| its content and/or the name extension(s) of the URI used to identify
| the resource. If the media type remains unknown, the recipient SHOULD
| treat it as type "application/octet-stream".
Hallo Hans,
Ist es egal, welche Dateiendung eine CSS-Datei hat, oder muss sie immer mit *.css enden?
ja, die Datei muss nur mit dem richtigen Content-Type (text/css) ausgeliefert werden.
Was hast du denn vor?
Grüße aus Nürnberg
Tobias
Hi,
ich wollte mit PHP eine "dynamische" CSS-Datei erzeugen...
Beispiel:
<link rel="stylesheet" href="style.php" type="text/css">
Inhalt der "style.php"-Datei:
<?
print '
body
{
background-color:#FFFFFF;
}';
So könnte ich eine individuelle Darstellung realisieren...
Was hältst du davon?
Gruß,
Hans
Hi,
<?
print '
body
{
background-color:#FFFFFF;
}';
So könnte ich eine individuelle Darstellung realisieren...
Was hältst du davon?
Kein Problem, Du mußt nur noch den richtigen Content-Type header senden.
Siehe header-Funktion im PHP-Manual.
cu,
Andreas