статические изображения не кэшируются на странице, сгенерированной php - PullRequest
1 голос
/ 15 июня 2010

Наш веб-сайт был преобразован в сценарии mod_rewrite и php.Изображения не кэшируются в браузерах, когда они, по-видимому, должны быть.

Все изображения следуют формату:

<img src="/images/header.png" />

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

В идеале я бы предоставил заголовки для «Cache-Control: no-cache, must-revalidate» и «Expires: some_date_in_the_past» для принудительного примененияповторная проверка PHP-скрипта.

Почему браузер не кэширует статические изображения с согласованными значениями href на всех страницах?

1 Ответ

2 голосов
/ 15 июня 2010

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

<IfModule mod_deflate.c>
<FilesMatch "\.(js|css|htm|php)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

<IfModule mod_expires.c>
    <FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
        ExpiresActive On
        ExpiresDefault "access plus 10 years"
        ExpiresByType image/x-icon A604800
        Header set Cache-Control "max-age=290304000, public"
    </FilesMatch>
</IfModule>

Как и в этом примере, я добавил заголовок с истекшим сроком давности для всех различных совпадений статических файлов.

Обратите внимание на тег FileMatch и расширения файлов.Файл .htacess хранится в любой папке внутри вашего приложения, и он дает этой папке эти настройки.

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