2013-02-21 1 views
6

Я хочу создать таблицу стилей в файле PHP (styles.php), чтобы таблица стилей становилась динамической, в зависимости от пользователя, который запрашивает. Для каждого отдельного пользователя таблица стилей является постоянной и поэтому должна быть кэширована в его клиентском браузере.Пусть браузеры кэшируют мою динамическую таблицу стилей PHP

Я прочитал, что вы можете достичь этого, установив заголовки для содержимого и управления кешем и т. Д., Но я не могу заставить это работать. По-видимому, этого больше, и, возможно, это даже невозможно. Браузеры не всегда прислушиваются к заголовкам кеширования.

Кто-нибудь знает, что требуется, чтобы файл PHP был кэширован в браузере?

Я не хочу ставить весь динамический CSS в блоке стиля в HTML, и я не хочу менять свою конфигурацию Apache для этого. Если это действительно невозможно, чего я хочу, я также хотел бы знать. Благодаря!

+0

каковы факторы, которые влияют на таблицу стилей? пользователь может настроить таблицу стилей? или вы создаете случайный? –

+0

В нашей системе много модулей, и есть центральный веб-сервис, который возвращает некоторые параметры стиля для зарегистрированного пользователя. Для меня они случайны, но, очевидно, они связаны с некоторыми пользовательскими деталями, такими как группа, к которой она принадлежит. –

+0

, поэтому вы используете сеансы php при вызове сценария стиля? Если это так, то это, скорее всего, ваша проблема. Я не мог проверить прямо сейчас, но если я помню, что правильный php перезаписывает заголовки кэша по умолчанию, если вы используете сеансы. Поэтому проверьте заголовки, которые браузер получает для таблицы стилей. –

ответ

0

это похоже похоже, проверьте пожалуйста.

Cache Headers for dynamic Css

+0

, потому что похоже, что он хочет отличать таблицу стилей от пользователя к пользователю, это на самом деле другой вопрос. и тогда контроль кэша не должен быть «публичным», а «частным» (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1) –

+0

Тем не менее, я видел эту страницу и попробовал. К сожалению, браузер сохраняет таблицу стилей php. –

+0

Вы также пробовали заголовок ('Cache-Control: max-age = 86400') – Ankit

10

Эти заголовки должны работать нормально:

$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

Имел точно такую ​​же проблему, используя динамический CSS-лист в Wordpress, и выше это исправлено! Благодаря :) – ss888

Смежные вопросы