CSS Update beim User
Eingetragen von kev52 (423)
am 11.08.2008 - 09:01 Uhr in
am 11.08.2008 - 09:01 Uhr in
Ich werkel an meiner Seite ständig weiter, daher ändert sich auch regelmäßig etwas an der css Datei. Das Problem dabei ist aber, dass der User diese Änderungen erst bemerkt, wenn er den Cache aktualisiert. Das weiß aber nicht jeder normale User. Gibt es da einen Trick immer die aktuellste Theme-Version "zu erzwingen"?
- Anmelden oder Registrieren um Kommentare zu schreiben
css nicht cachen
am 11.08.2008 - 09:23 Uhr
Moin!
Wenn Du einen zufälligen Wert (z.B: timestamp) an das CSS anhängst, wird das CSS bei jedem Aufruf neu geladen.
Also beispielsweise so:
<link rel="stylesheet" href="style.css?1234567890" />
Dazu musst Du die Einbindung der einzelnen CSS-Dateien ändern:
<?php
function _phptemplate_variables($hook, $vars) {
switch($hook) {
case 'page' :
$css = $vars['css'];
// ...
$css['all'][...][...] .= '?1234567890';
$vars['css'] = $css;
break;
}
return $vars;
}
?>
Lass Dir mal $vars['css'] ausgeben, dann siehst Du, wie die Struktur aussieht und wo Du etwas anhängen musst.
hth,
Stefan
also direkt mit dem Link und ohne Drupal-Funktion
am 11.08.2008 - 09:35 Uhr
@kev52,
bei der angefragten Problematik waere es gut zu wissen von welcher Drupalversion die Rede ist. "Drupal 5.x oder neuer" ist nicht konkret.
Bei D6 kann man sich den $vars Spass sparen. Wie schon gesagt eine eigene CSS Datei haendisch - also direkt mit dem Link und ohne Drupal-Funktion (drupal_add_css) - in der page.tpl.php eintragen. Ohne optionale Parameter nach der Dateiendung wird eine derart gelinkte CSS Datei auch bei aktivierter CSS Komprimierung nicht komprimiert.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
cache
am 11.08.2008 - 09:47 Uhr
Ohne optionale Parameter nach der Dateiendung wird eine derart gelinkte CSS Datei auch bei aktivierter CSS Komprimierung nicht komprimiert.
Bleibt jedoch immer noch das Problem, dass der Browser des Nutzers die Datei speichert und den gespeicherten Stand immer wieder ausliefert (bis der Cache geleert wird). Und das lässt sich halt nur durch das kleine Anhängsel (oder inline-CSS :-| ) lösen.
Stefan
also es ist Drupal 5.7 muss
am 11.08.2008 - 09:52 Uhr
also es ist Drupal 5.7
muss das Anhängsel ein Timestap sein? Und wenn ja bedeutet der etwas? Also z.B. alle 60 Sekunden aktualisieren?
time()
am 11.08.2008 - 10:27 Uhr
muss das Anhängsel ein Timestap sein? Und wenn ja bedeutet der etwas? Also z.B. alle 60 Sekunden aktualisieren?
Nö, muss kein Timestamp sein. Ist jedoch von Vorteil, da sich der ständig ändert und ziemlich eindeutig ist :-).
Um die Aktualisierung musst Du Dich gar nicht kümmern:
<?php
$css['...']... += '?'. time(); // aktuellen Zeitstempel anfügen
?>
Stefan
bestens, dann werde ich das
am 11.08.2008 - 10:38 Uhr
bestens, dann werde ich das so machen. ich danke euch allen