Christoph Schnauß: XHTML-Dokument mit CSS darstellen

hallo Forum ;-)

ich ärgere mich mit einem XHTML-Dokument herum, dem ich einen *.xhtm-Namen geben möchte, und keinen *.htm-Namen. Als *.htm-Datei funktioniert alles ...
Der IE zeigt mir die Baumstruktur an, mozilla findet die Grafiken und die CSS nicht, Opera findet zwar die Grafiken, aber auch nicht die CSS und kann plötzlich keine Umlaute (möglicherweise stimmt die Codierung nicht).
Der Validator sagt was von unbekanntem MIME-Typ, wenn ich aber exakt dieselbe Datei von meiner Platte aus validiere, gratuliert er mir mit gewohnter Freundlichkeit zum validen XHTML-Dokument.

Hat jemand nen Hinweis, was an meiner CSS nicht stimmt?
Wenn ich die erste Zeile
<?xml version="1.0" encoding="iso-8859-1" ?>
weglasse, funktioniert es plötzlich, aber ich bin ja ein folgsamer Leser von SELFHTML

Die Adresse, um die es geht, ist http://www.christoph-schnauss.de/temp/sb/help/sbindex.xhtm

Grüße aus Berlin

Christoph S.

  1. Hallo Christoph,

    ich ärgere mich mit einem XHTML-Dokument herum, dem ich einen *.xhtm-Namen geben möchte, und keinen *.htm-Namen. Als *.htm-Datei funktioniert alles ...
    Der IE zeigt mir die Baumstruktur an, mozilla findet die Grafiken und die CSS nicht, Opera findet zwar die Grafiken, aber auch nicht die CSS und kann plötzlich keine Umlaute (möglicherweise stimmt die Codierung nicht).
    Der Validator sagt was von unbekanntem MIME-Typ, wenn ich aber exakt dieselbe Datei von meiner Platte aus validiere, gratuliert er mir mit gewohnter Freundlichkeit zum validen XHTML-Dokument.

    Hat jemand nen Hinweis, was an meiner CSS nicht stimmt?
    Wenn ich die erste Zeile
    <?xml version="1.0" encoding="iso-8859-1" ?>
    weglasse, funktioniert es plötzlich, aber ich bin ja ein folgsamer Leser von SELFHTML

    Die Adresse, um die es geht, ist http://www.christoph-schnauss.de/temp/sb/help/sbindex.xhtm

    Mozilla zeigt mir als Mime-Typ application/octet-stream an,
    also scheint der Webserver einen falschen Content-Type auszuliefern.

    Schönen Gruß aus Bilk

    Rainer

    1. hallo,

      Mozilla zeigt mir als Mime-Typ application/octet-stream an

      nicht nur Mozilla. Ich sagte ja, daß der Validator den MIME-Typ bemängelt. Ich habe allerdings dieselbe Dtei auch bei zwei anderen Providern liegen (t-online und arcor), die "ordentliche" MIME-Typen ausgeben, aber mein "Anzeigeproblem" besteht dort genauso. Und: ich habe dasselbe Anzeigeproblem auch offline

      Christoph S.

      1. Moin!

        Mozilla zeigt mir als Mime-Typ application/octet-stream an
        nicht nur Mozilla. Ich sagte ja, daß der Validator den MIME-Typ bemängelt. Ich habe allerdings dieselbe Dtei auch bei zwei anderen Providern liegen (t-online und arcor), die "ordentliche" MIME-Typen ausgeben, aber mein "Anzeigeproblem" besteht dort genauso. Und: ich habe dasselbe Anzeigeproblem auch offline

        Ich nicht. koenntest du also bitte deinen Mime-Type aendert, so dass wir auch mal nachvollziehen koennen, ob es wirklich daran liegt? Weil erst dann kann ich sie hier mit Mozilla ueberhaupt erst richtig anschauen, sonst muesste ich mir angeblich eine exe runterladen.

        Vielen Dank und viele Gruesse,

        Einbecker

        1. hallo,

          koenntest du also bitte deinen Mime-Type aendert, so dass wir auch mal nachvollziehen koennen, ob es wirklich daran liegt?

          Ich habe jetzt nochmal mehrere MIME-Typen probiert (im Moment steht drin "text/xml"). Das beeindruckt die Server aber überhaupt nicht. Ausgeliefert wird bei http://www.christoph-schnauss.de/temp/sb/help/sbindex.xhtml "application/octet-stream"  -  ich habe keine Ahnung, warum  -  und bei http://home.arcor.de/schnauss/sb/sbindex.xhtml wird "text/plain" ausgeliefert, da kann ich zappeln, wie ich will. Andere Provider habe ich derzeit nicht. Und, wie gesagt, offline und ohne Vermittlung eines Webservers habe ich genau dieselben Anzeigeprobleme.

          Weil erst dann kann ich sie hier mit Mozilla ueberhaupt erst richtig anschauen, sonst muesste ich mir angeblich eine exe runterladen.

          eine EXE? Das verstehe ich gar nicht. Kannst du angeben, was das für eine Datei sein soll? Ich hab da gewiß nichts derartiges eingestellt.

          Grüße aus Berlin

          Christoph S.

          1. Hallo Christoph,

            Ich habe jetzt nochmal mehrere MIME-Typen probiert (im Moment steht drin
            "text/xml"). Das beeindruckt die Server aber überhaupt nicht. Ausgeliefert
            wird bei http://www.christoph-schnauss.de/temp/sb/help/sbindex.xhtml
            "application/octet-stream"  -  ich habe keine Ahnung, warum

            Wahrscheinlich, weil der Endung .xhtml nichts zugewiesen ist.

            da kann ich zappeln, wie ich will.

            .htaccess:

            AddType text/xml .xhtml

            Gruesse,
             CK

            1. hoi ;-)

              http://www.christoph-schnauss.de/temp/sb/help/sbindex.xhtml
              .htaccess:
              AddType text/xml .xhtml

              geht bei dieser Adresse nicht, ist IIS ;-( Und auf den Server hab ich keinen Zugriff. Der Provider unterhält ein eigenes Forum für "Privatkunden", da hab ich bereits dringlich nachgefragt, aber noch keine Reaktion.

              Grüße retour

              Christoph S.

  2. Hallo Christoph,

    Hat jemand nen Hinweis, was an meiner CSS nicht stimmt?

    Ohne auf die obigen Details eine Antwort zu haben (warum nun welcher Browser was meldet), solltest Du Deine CSS-Datei einfach über eine <xml-stylesheet>-Verarbeitungsanweisung einbinden. So ist es dann XML-konform.

    Also statt

    <link rel="stylesheet" type="text/css" href="selfbrowserhlp.css" />

    <?xml-stylesheet href="selfbrowserhlp.css" type="text/css"?>

    Dann müsste es funktionieren.

    Ich kenne die XHTML-Spec nicht gut genug, um sagen zu können, ob <link rel="stylesheet" type="text/css" href="selfbrowserhlp.css" /> falsch ist. Jedenfalls funktionierts in den Browsern nicht. Wenn die die XML-Deklaration sehen, schalten die auf XML um und wollen dann eine <xml-stylesheet>-Verarbeitungsanweisung für die Verknüpfung von Stylesheet und XHTML-Dokument.

    Wenn ich die erste Zeile
    <?xml version="1.0" encoding="iso-8859-1" ?>
    weglasse, funktioniert es plötzlich, aber ich bin ja ein folgsamer Leser von SELFHTML

    s.o.

    Grüße aus Berlin

    ebenfalls

    Christoph S.

    Franz

    1. hi,

      Also statt
      <link rel="stylesheet" type="text/css" href="selfbrowserhlp.css" />
      <?xml-stylesheet href="selfbrowserhlp.css" type="text/css"?>
      Dann müsste es funktionieren.

      nein, das tut es leider nicht

      Grüße aus Berlin

      Christoph S.

    2. Hallo Franz,

      Ich kenne die XHTML-Spec nicht gut genug, um sagen zu können, ob <link rel="stylesheet" type="text/css" href="selfbrowserhlp.css" /> falsch ist. Jedenfalls funktionierts in den Browsern nicht. Wenn die die XML-Deklaration sehen, schalten die auf XML um und wollen dann eine <xml-stylesheet>-Verarbeitungsanweisung für die Verknüpfung von Stylesheet und XHTML-Dokument.

      Nö, guck dir mal meine Seite an. Der Index heißt übrigens
      index.xphp, und dafür habe ich folgendes in meine .htaccess ge-
      schrieben:

      AddType application/x-httpd-php .xphp
        DirectoryIndex index.xphp

      Vielleicht hilft das?

      Bye,
      Peter

  3. hallo Forum ;-)

    ich ärgere mich mit einem XHTML-Dokument herum, dem ich einen *.xhtm-Namen geben möchte, und keinen *.htm-Namen. Als *.htm-Datei funktioniert alles ...

    Wenn du schon die 8.3- oder zumindest x.3-Dateinamenkonvention brichst, indem du ein vier Zeichen langes Suffix "xhtm" verwendest, warum dann nicht gleich "xhtml" verwenden. Bei dieser Endung könnte dein Webserver vermutlich einen passenderen Mimetyp liefern, als jetzt. Mein Opera wollte die Datei nämlich herunterladen und lokal speichern, aber keinesfalls anzeigen.

    "Zu Risiken und Nebenwirkungen lesen Sie die die Konfigurationsdatei oder fragen Sie ihren Sysop oder Administrator!"

    Der Validator sagt was von unbekanntem MIME-Typ, wenn ich aber exakt dieselbe Datei von meiner Platte aus validiere, gratuliert er mir mit gewohnter Freundlichkeit zum validen XHTML-Dokument.

    Ein lokales Dokument hat keinen Mimetyp, eines auf dem Server schon. :) Das bedeutet: Der Mimetyp ist das einzig falsche. Korrigiere das, und du hast ein Problem weniger.

    - Sven Rautenberg

    1. hallo Sven,

      Wenn du schon die 8.3- oder zumindest x.3-Dateinamenkonvention brichst, indem du ein vier Zeichen langes Suffix "xhtm" verwendest, warum dann nicht gleich "xhtml" verwenden.

      Das ändert am Problem nichts

      Ein lokales Dokument hat keinen Mimetyp, eines auf dem Server schon. :)

      Das sollte mir bekannt sein. Ich habe also lokal eine valide XHTML-Datei. Aber ich bekomme sie im IE nicht angezeigt, auch nicht, wenn ich sie über den lokalen Apache aufrufe. Mein lokaler Apache liefert den korrekten MIME-Typ

      Das bedeutet: Der Mimetyp ist das einzig falsche. Korrigiere das, und du hast ein Problem weniger.

      Kann ich nicht. Ich kann zwar META-Angaben reinschreiben, aber das ändert überhaupt nichts. Und der Server für die angegebene Adresse ist ein IIS, da komme ich nicht an die Konfiguration heran (htacces ist da nicht möglich).
      Ich habe dieselbe Datei bei zwei anderen Providern deponiert, einer davon läßt eigene .htaccess zu. Alles, was ich da bisher probiert habe, hat am "Ergebnis" nix geändert

      Christoph S.

  4. Hallo Christoph,

    Der IE zeigt mir die Baumstruktur an, mozilla findet die Grafiken und die CSS nicht, Opera findet zwar die Grafiken, aber auch nicht die CSS und kann plötzlich keine Umlaute (möglicherweise stimmt die Codierung nicht).
    Der Validator sagt was von unbekanntem MIME-Typ, wenn ich aber exakt dieselbe Datei von meiner Platte aus validiere, gratuliert er mir mit gewohnter Freundlichkeit zum validen XHTML-Dokument.

    OK, mal ohne Grafiken und CSS, aber einfach mal fuer den Abgleich von Dateiendungen und MimeTypen:

    http://forum.de.selfhtml.org/test/xhtml.xhtml
    http://forum.de.selfhtml.org/test/xhtml.xhtm
    http://forum.de.selfhtml.org/test/xhtml.xml

    Und aus unserm Apache:

    AddType text/html .xhtml

    Mein Test mit Mozilla:

    *.xhtml wird als HTML aufgeloest, *.xhtm nicht. Schlussfolgerung nach Otto Normaldenker -> Apache:

    AddType text/html .xhtm

    Hab ich zwar jetzt nicht ausprobiert, weil ich nicht den Apache wegen Neustart stoppen will hier - es soll ja fleissig weiter diskutiert werden ;-)

    viele Gruesse
      Stefan Muenz

    1. tach auch ;-)

      OK, mal ohne Grafiken und CSS, aber einfach mal fuer den Abgleich von Dateiendungen und MimeTypen:
      http://forum.de.selfhtml.org/test/xhtml.xhtml
      http://forum.de.selfhtml.org/test/xhtml.xhtm
      http://forum.de.selfhtml.org/test/xhtml.xml

      Das sind die Beispiele aus SELFHTML, die dort auch funktionieren. In deinem Forum-Test-Verzeichnis funktioniert nur das erste, bei beiden anderen kommt ein Hinweis auf fehlende DTD

      AddType text/html .xhtm
      Hab ich zwar jetzt nicht ausprobiert

      daran wirds wohl liegen, aber warum kann euer Apache dann kein XML?

      AddType text/html .xhtml
      *.xhtml wird als HTML aufgeloest

      richtig, aber dann hab ich ein Verständnisproblem. Ich habe drinstehen
      AddType text/html .xhtml .xhtm .xml
      aber ich hab das bewußt wieder auskommentiert. Der Grund: in SELFHTML hast du auf die Rolle der Extensionen hingewiesen, und ich habe die Erweiterung XHTM bzw. XHTML bewußt gewählt, weil damit laut SELFHTML die XML-Parser angesprochen werden sollten. Ich hätts mir leicht machen und alles bei HTM belassen können, da gibts keinerlei Anzeigeproblem. Aber auch nix zu rätseln.

      So, jetzt hab ich die AddType-Zeile wieder aktiviert (geht bei mir etwas problemloser als auf eurem Server), und siehe da, wenn ich die Seiten jetzt über den lokalen Apache laufen lasse, kriege ich alles so hübsch vorgeführt, wie ich es haben möchte. Aber ist das denn nicht ein bißchen gemogelt?

      Grüße

      Christoph S.

      1. Tachchen!

        Die Identifikation anhand der Dateiendung scheint nur unter Umgehung des HTTP zu funktionieren, sprich: direkt von Platte.
        Ansonsten muß der MIME-Type, mit dem der Server Daten verschickt, korrekt sein! Fehlendes CSS im Mozilla ist u.U. hierauf zurückzuführen: http://developer.netscape.com/evangelism/docs/technotes/incorrect-mime-types/.
        Des weiteren mußt du, wenn der IE dir dein Dokument nur als Tree anzeigt , das CSS so einbinden: http://selfhtml.teamone.de/xml/darstellung/css.htm
        Weiteres Mozilla-vs-Rest-der-Welt-Problem: wenn ein xhtml Dokument tatsächlich als application/xml, text/xml oder application/xhtml+xml vom Server ausgeliefert wird, muß Script- & CSS-Inhalt, der normalerweise zw. 2 Kommentare (<!-- //-->)gesetzt wird, als CDATA fekennzeichnet werden: http://www.w3.org/TR/xhtml1 Punkt 4.8. Dumm nur das diese Art von Maskierung in anderen Browsern, insbesondere bei Scripts, zu Fehlermeldungen führt.

        Gruß Herbalizer

        1. hi ;-)

          http://developer.netscape.com/evangelism/docs/technotes/incorrect-mime-types/

          das ist eine interessante Adresse. Nur hat, was dort nachzulesen ist, mit meinem "XHTML"-Problem nur am Rand zu tun. Wenn ich meine Datei einfach wieder umbenenne und ihr einen Namen *.htm gebe, funktioniert ja alles zufriedenstellend, das heißt, die CSS wird mit dem korrekten MIME-Typ ausgeliefert.

          Des weiteren mußt du, wenn der IE dir dein Dokument nur als Tree anzeigt , das CSS so einbinden: http://selfhtml.teamone.de/xml/darstellung/css.htm

          Ich habe im Ausgangsposting gesagt, daß ich meine Darstellungsprobleme nur bekommen habe, weil ich mich streng genau an dieses (und einige weitere) Kapitel aus SELFHTML halten wollte.

          Weiteres Mozilla-vs-Rest-der-Welt-Problem: wenn ein xhtml Dokument tatsächlich als application/xml, text/xml oder application/xhtml+xml vom Server ausgeliefert wird, muß Script- & CSS-Inhalt, der normalerweise zw. 2 Kommentare (<!-- //-->)gesetzt wird, als CDATA fekennzeichnet werden: http://www.w3.org/TR/xhtml1 Punkt 4.8.

          Nein, muß nicht. Die CSS ist als externe Datei eingebunden, wird also aus einem link übernommen. Dann sind CDATA-Einträge nicht nötig. Die sind vom W3C ausdrücklich dann "empfohlen", wenn das Script selbst in der Datei steht

          Das Problem scheint sich in der Tat auf den Umgang mit dem MIME-Typ zu reduzieren. Wie ich geschrieben habe, macht men lokaler Apache ja alles korrekt, wenn in der httpd.conf drinsteht:

          AddType text/html .xhtml .xhtm .xml

          Aber, wie Stefan schrieb, wird XHTML damit nach HTML "aufgelöst", was möglicherweise bedeutet, daß der XML-Parser des anfragenden Browsers nicht angesprochen wird  -  was ich ja mit der Datinamensendung eigentlich erzwingen möchte.

          Vielleicht habe ich halt nur das Pech, daß sämtliche Provider, bei denen ich Webspace bestellt habe, mit solchen Fragen noch nie zu tun hatten und ihre Server einfach nicht darauf eingestellt aind und Anfragen nach XHTML bzw. XML nicht korrekt beantworten. Ich werds mal mit einer kleinen "echten" XML-Datei gegenprüfen müssen.

          Grüße aus Berlin

          Christoph S.

      2. Hallo,

        AddType text/html .xhtm
        Hab ich zwar jetzt nicht ausprobiert
        daran wirds wohl liegen, aber warum kann euer Apache dann kein XML?

        Was hat denn das mit dem Apachen zu tun? Der Apache parsed doch die Dokumente
        nicht. Die Zuordnung MIME-Type <-> Datei geschieht ueber die Datei-Endung, beim
        Apachen.

        richtig, aber dann hab ich ein Verständnisproblem. Ich habe drinstehen
        AddType text/html .xhtml .xhtm .xml
        aber ich hab das bewußt wieder auskommentiert. Der Grund: in SELFHTML hast du
        auf die Rolle der Extensionen hingewiesen, und ich habe die Erweiterung XHTM
        bzw. XHTML bewußt gewählt, weil damit laut SELFHTML die XML-Parser
        angesprochen werden sollten.

        Das gilt fuer den IE, ja. Aber das ist ein inkorrektes Verhalten: ob der
        XML-Parser benutzt wird oder nicht, kann eigentlich nur der MIME-Type
        entscheiden. Was ist z. B., wenn die Datei, die ausgeliefert werden soll, in
        der URI keine Endung hat?

        Ich hätts mir leicht machen und alles bei HTM belassen können, da gibts
        keinerlei Anzeigeproblem. Aber auch nix zu rätseln.

        Da wird ja auch wahrscheinlich text/html als MIME-Type ausgegeben.

        So, jetzt hab ich die AddType-Zeile wieder aktiviert (geht bei mir etwas
        problemloser als auf eurem Server), und siehe da, wenn ich die Seiten jetzt
        über den lokalen Apache laufen lasse, kriege ich alles so hübsch vorgeführt,
        wie ich es haben möchte. Aber ist das denn nicht ein bißchen gemogelt?

        Nicht im geringsten. Genau so muss es sein.

        Gruesse,
         CK

    2. Hab ich zwar jetzt nicht ausprobiert, weil ich nicht den Apache
      wegen Neustart stoppen will hier

      http://selfhtml.teamone.de/diverses/htaccess.htm#allgemeines