Привет. У меня есть веб-приложение, состоящее из html-разметки и встроенного <?php ?> кода. Я реализовал вставку скриптов и стилей при помощи создания файла config.php, в котором создал переменные $stylesheets и $scripts. И создал переменную $env, где я указываю текущее состояние окружения разработки. Если я указываю $env = 'dev', то загружаются различные не минифицированные файлы из папки /dev/, а если устанавливаю $env = 'production', то используются файлы из папки /assets/, прошедшие сборку, минификацию и прочее через Gulp. Но вот у меня какая-то беда с этим всем. Я перенёс файлы изображений и папки /img в assets/img/, и пошёл менять пути в html. Заменяю атрибут src="/img/flags/ru.png" на src="/assets/img/flags/ru.png", а изменение происходит в html не сразу. И перезагрузка без кэша не помогает. То же самое происходит и с php. Если я устанавливаю $env = 'dev', то какое-то время на странице всё ещё отображаются файлы, загружаемые из продакшн-папки. Раньше такого никогда не было. Подскажите, пожалуйста, где может кэшироваться html и как это отключить? Установлен Nginx 1.12.0 и PHP7.0 с FPM. Memcached не установлен.
Через переменную для нескольких типов файлов, например
# ...
# Expires map
map $sent_http_content_type $expires {
default off;
text/html epoch;
text/css max;
application/javascript max;
~image/ max;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
expires $expires;
# ...
Для text/html мы устанавливаем значение в epoch. Это особое
значение, которое явно выражается в отсутствии кеширования, что
заставляет браузер всегда спрашивать, обновлен ли сам веб-сайт (ресурс).
Или только для html/htm файлов
server {
# ....
location ~* \.(?:html?)$ {
expires -1;
}
# ....
}
Не забудьте перезагрузить NGINX после изменений.
Продвижение своими сайтами как стратегия роста и независимости