Hochgeladene CSS-Datei wird nicht benutzt

  • Hallo Joomla-Menschen!
    Ich bastle gerade die inzwischen zweite Seite mit Joomla und während es bei der ersten doch recht gut lief, stoße ich nun auf ein Problem, dass ich bisher nicht hatte.


    Änderungen an der template.css, die ich via Filezilla hochlade, werden nicht übernommen. Die Datei liegt oben, aber irgendwas generiert lieber seine eigene template.css. Das etwas komisch läuft fiel mir auf, als ich im Browser via "Elemente untersuchen" nachschauen wollte, wo ich was in der CSS-Datei finde. Anstatt dort aber die gewohnte Zeile "template.css:[Zeile]" zu finden, stand so etwas wie: template.css?64d2acb48785969661e121ab8ad74723:[Zeile].
    Ich hab also mal den Debugger bemüht und so herausgefunden, dass aus der Datenbank folgendes kommt:


    UPDATE `fqfv3_extensions`

    SET `params` = '{\"mediaversion\":\"64d2acb48785969661e121ab8ad74723\"}'

    WHERE `type` = 'library' AND `element` = 'joomla'


    Das hinter "mediaversion" ist bzw. war auch die alpha-numerische Zeichenfolge, die hinter der template.css aufgetaucht ist. Ein bisschen google-Recherche später war ich nicht wirklich schlauer. Weder warum das passiert, noch wie es "abschalten" kann.
    Auch hier im Forum hab ich ausgiebig die Suche-Funktion genutzt, leider ebenfalls ohne Erfolg.


    Ich hoffe jemand kennt sich damit aus. Bis auf weiteres kann ich sonst nicht an meiner Seite weiterarbeiten.


    Grüße
    Malphas

  • Werden die Änderungen auch nicht sichtbar, wenn du den Browser-Cache löscht? Da seh ich das eigentliche Problem.


    Die von Joomla angehängte, hier sog. mediaversion dient dazu, dem Browser-Cache mitzuteilen, dass er die Datei schon kennt und nicht neu laden muss bzw. eigentlich richtiger: Mit einem Joomla-Update ändert sich auch der mediaversion-Wurm und der Browser-Cache wird sie neu laden, da für ihn eine bisher unbekannte Datei. Besonders hilfreich im Backend.


    Da du dein Template nicht nennst. Im Protostar-Template wird der mediaversion-Wurm z.B. so angefordert ('version' => 'auto'):

    Code
    1. JHtml::_('stylesheet', 'template.css', array('version' => 'auto', 'relative' => true));


    Wobei es deinem Browser ggf. auch wurst ist, ob du den Wurm entfernst oder nicht. Im Normalfall wird er auch die "blanke" template.css erst nach Löschen des Browser-caches erneuern. 1x wirds aber wohl klappen.


    Die Datei liegt oben, aber irgendwas generiert lieber seine eigene template.css.


    Sollte das der Fall sein, bspw. Template erzeugt eine aus LESS oder so, dann geht dein Problem in eine andere Richtung. Kannst ja noch mal nachhaken. Template und Framework nennen nicht vergessen.

  • Danke erstmal für die schnelle Antwort.


    Das Template das ich verwende hast du schonmal richtig erraten: Protostar.
    Das Framework müsste dann entsprechend Bootstrap sein, wenn ich mich nicht irre und verlesen hab.


    Danke jedenfalls schonmal für den Tipp mit dem Cache, das Hilft mir schonmal weiter!


    Aber nochmal für mich zum Verständnis: Ich hab ja wie gesagt schonmal eine Website gestaltet, da hatte ich das Problem nie und ich kann mich auch nicht erinnern, irgendwelche Einstellungen geändert zu haben, die meinen Browser dazu veranlassen, anders mit seinem Cache umzugehen. Warum also jetzt diese seltsame "Macke" (ist es ja nicht wirklich)?

  • Du kannst das natürlich auch umgekehrt nutzen. Wenn dich das zu häufige Cache-löschen nervt, änderst die Zeilen in der index.php während Arbeitssitzungen wie folgt


    ALT:

    Code
    1. // Add StylesheetsJHtml::_('stylesheet', 'template.css', array('version' => 'auto', 'relative' => true));


    NEU:

    Code
    1. // Add Stylesheets
    2. JHtml::_('stylesheet', 'template.css', array('version' => time(), 'relative' => true));


    und hinterher halt wieder zurück. Das time() sorgt dafür, dass der Wurm sich bei jedem Aufruf ändert.