Удалить загрузочный артефакт с помощью PHP сгенерированного CSS - PullRequest
3 голосов
/ 15 февраля 2011

Я использую PHP для создания поддерживаемых таблиц стилей, как описано в следующей статье: http://www.barelyfitz.com/projects/csscolor/

Однако, поскольку PHP генерирует этот файл немного «динамически», он не кэшируется браузером клиента и показывает все элементы как пустые / неустановленные в течение доли секунды. Есть ли способ кэшировать CSS или удалить этот артефакт?

Ссылка на сайт http://www.leadwerks.net/.

Спасибо!

1 Ответ

3 голосов
/ 15 февраля 2011

Если файл CSS генерируется динамически, но не изменяется при каждом запросе, отправьте далеко удаленные заголовки срока действия и добавьте время последнего изменения в файл, чтобы вы могли разбить кэш, если вам нужно обновить это.

Обновление

Так что я предполагаю, что ваш PHP-файл будет где-то ....

header('Content-Type: text/css');

... так что добавьте это ...

header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 year')).' GMT');

Затем, когда ссылаетесь на файл CSS, сделайте это ...

<?php echo $file = '/styles/custom.php' ;?>
<link rel="stylesheet"
      type="text/css"
      href="<?php echo $file; ?>?m=<?php echo filemtime($file); ?>"
/>

Без этого пользователи не будут видеть изменения на вашем сайте в течение года с момента первой загрузки CSS. Когда вы обновите файл, вы измените добавленный номер. Если вы физически не меняете файл (он использует вызовы базы данных), вы можете выбрать последнюю обновленную строку или добавить номер контроля версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...