Ergebnis 1 bis 5 von 5

Thema: PHP "bemerkt" Änderungen im CSS verzögert - wieso?

  1. #1
    Contao-Nutzer Avatar von Transparenz
    Registriert seit
    27.06.2010.
    Ort
    Allgäu
    Beiträge
    29

    Standard PHP "bemerkt" Änderungen im CSS verzögert - wieso?

    Ich möchte im CSS mit Zufall und Datum arbeiten, geht ja prima mit PHP, Stichwort Dynamic CSS. Dazu ergänze ich im Seitenlayout bei den zusätzlichen <head>-Tags ein Stylesheet mit der Endung .php und in dieser Datei steht dann z.B. folgender Code:

    Code:
    <?php
      header('content-type: text/css');
      $hintergrund = '#999';
    ?>
    body {
      background-color: <?=$hintergrund?>;
    }
    Das funktioniert auch wie geplant. Nur wenn ich z.B. die Farbe ändere, dauert es im Extremfall bis zu 5 Minuten, bis es im Browser sichtbar wird

    Erster Gedanke: Cache. Aber auch wenn ich in der Systemwartung alle Daten bereinige, in den Einstellungen den internen Cache umgehe, Server- und Browsercache deaktiviere und auch im Browser selbst den Cache ausschalte, bleibt diese Verzögerung.

    Dieses Verhalten beobachte ich nicht nur online im Contao, sondern auch lokal im MAMP ohne CMS mit kleinen Dummy-Dateien. Es wäre super, wenn ich Änderungen gleich sehen könnte.

    Ich weiß echt nicht, wo es hakt... Danke für jeden Denkanstoß

  2. #2
    Contao-Urgestein Avatar von KlausGrenoble
    Registriert seit
    27.01.2013.
    Ort
    Grenoble
    Beiträge
    2.362

    Standard

    Ist es wahrscheinlich nicht, aber was ist, wenn man mit zwei verschiedenen Browsern gleichzeitig arbeitet ?

  3. #3
    Contao-Nutzer Avatar von Transparenz
    Registriert seit
    27.06.2010.
    Ort
    Allgäu
    Beiträge
    29

    Standard

    Das ist ziemlich verrückt: wenn ich die Seite in Browser A mit #999 ansehe, dann im CSS auf #000 ändere und die Seite in Browser B im Privat-Modus öffne, sehe ich immer noch #999 Erst nach einer gewissen Zeit und mehrmals "Aktualisieren" drücken bringt Browser B die Seite dann auch mit #000...
    Geändert von Transparenz (29.12.2013 um 23:00 Uhr)

  4. #4
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Da wirst du wohl deine
    PHP-Code:
    header('content-type: text/css'); 
    Zeile noch erweitern müssen.
    Diese Datei wird ja extra vom Browser aufgerufen, Einstellungen in Contao gelten da nicht wie du ja selber bemerkt hast.
    Der Webserver scheint da wohl auch was zu Cachen.
    So sendet Contao das bei abgeschaltetem Cache, inkl. deiner Zeile.

    PHP-Code:
    header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    header('Pragma: no-cache');
    header('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
    header('Expires: Fri, 06 Jun 1975 15:10:00 GMT');
    header('Vary: User-Agent'false);
    header('Content-Type: text/css'); 
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  5. #5
    Contao-Nutzer Avatar von Transparenz
    Registriert seit
    27.06.2010.
    Ort
    Allgäu
    Beiträge
    29

    Standard

    Auch mit folgendem Code bleibt die Verzögerung bzw. das Caching leider bestehen:

    Code:
    <?php
    	header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0'); 
    	header('Pragma: no-cache'); 
    	header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
    	header('Expires: Fri, 06 Jun 1975 15:10:00 GMT'); 
    	header('Vary: User-Agent', false); 
    	header('Content-Type: text/css'); 
    	$hintergrund = '#999';
    ?>
    body {
    	background-color: <?=$hintergrund?>;
    }
    Hatte vorher auch schon erfolglos mit zusätzlichen headern rumprobiert

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •