2013-02-21 13 views
6

Chcę utworzyć arkusz stylów w pliku PHP (styles.php), tak, aby arkusz stylów stał się dynamiczny, w zależności od użytkownika, który żąda. Dla każdego użytkownika arkusz stylów jest stały i dlatego powinien być zapisany w pamięci podręcznej w przeglądarce klienta.Pozwól przeglądarkom buforować mój dynamiczny arkusz stylów PHP

Przeczytałem, że można to osiągnąć, ustawiając nagłówki dla typu zawartości i kontroli pamięci podręcznej i takie, ale nie mogę tego uruchomić. Wygląda na to, że jest w tym coś więcej, a może nawet nie jest to możliwe. Przeglądarki nie zawsze wydają się słuchać nagłówków buforowania.

Czy ktoś wie, co jest wymagane, aby plik PHP był buforowany w przeglądarce?

Nie chcę umieszczać wszystkich dynamicznych CSS w bloku stylu w kodzie HTML i nie chcę zmieniać mojej konfiguracji Apache. Jeśli to naprawdę nie jest możliwe, co chcę, również chciałbym wiedzieć. Dzięki!

+0

jakie są czynniki, które wpływają na stylów? czy użytkownik jest w stanie skonfigurować arkusz stylów? czy tworzysz losowy? –

+0

Nasz system ma wiele modułów i istnieje główna usługa sieciowa, która zwraca niektóre ustawienia stylizacji dla zalogowanego użytkownika. Są dla mnie losowe, ale oczywiście są związane z niektórymi szczegółami użytkownika, takimi jak grupa, do której należy. –

+0

, więc używasz sesji php po wywołaniu skryptu stylu? W takim przypadku jest to najprawdopodobniej Twój problem. Nie mogłem teraz sprawdzić, ale jeśli dobrze pamiętam, php nadpisuje nagłówki w pamięci podręcznej domyślnie, jeśli korzystasz z sesji. Sprawdź nagłówki, które przeglądarka otrzymuje dla arkusza stylów. –

Odpowiedz

0

to wydaje się być podobne, proszę sprawdzić.

Cache Headers for dynamic Css

+0

ponieważ wygląda na to, że chce odróżnić arkusz stylów od użytkownika do użytkownika, to w rzeczywistości jest to inne pytanie. a następnie kontrola pamięci podręcznej nie powinna być "publiczna", ale "prywatna" (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1) –

+0

Jednak widziałem tę stronę i spróbował tego. Niestety przeglądarka nadal pobiera arkusz stylów php. –

+0

Czy próbowałeś także nagłówka ("Cache-Control: max-age = 86400")? – Ankit

10

te nagłówki powinny działać prawidłowo:

$expires = 60*60*24; // how long to cache in secs.. 
header("Pragma: public"); 
header("Cache-Control: maxage=".$expires); 
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT'); 
header('Content-type: text/css'); 
+0

Miałem dokładnie ten sam problem, używając dynamicznego arkusza CSS w Wordpressie, a powyższe poprawiono! Dzięki :) – ss888

Powiązane problemy