Похожие записи:
- Дубликаты mime-типов NGINX
- Nginx 502 Проблема с API и php-fpm
- Почему после настройки новой сети соединение с моим сервером minecraft (через nginx) было потеряно, в то время как все другие службы, обслуживаемые nginx, работают нормально?
- Поместите каждый объект в указанное ведро
- Ошибка запуска куста: java.net.NoRouteToHostException: нет маршрута к хосту от xxx до xxx: 22332.
sanek1991
Сайт на движке форума Xenforo
Во вложениях картинки у него отображаются специальным обработчиком
Для вывода картинки получается вот такая конструкция:
Не получается включить для них кеширование в браузере клиента.
Пробовал такие варианты в htaccess:
и такой:
Не кеширует.
Возможно ли вообще ?
SocFishing
в консоли смотрите прописывается ли заголовок?
<FilesMatch «.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$»>
Header set Cache-Control «max-age=2592000»
</FilesMatch>
sanek1991
в консоли смотрите прописывается ли заголовок?
В том-то и дело что не прописывается.
Вот какие заголовки отправляются на вложения картинок
jpg
1.jpg
hakuna matata
Пишешь правила в htaccess, а отдает пикчи nginx.
sanek1991
Подозреваю что поможет только правка скриптов движка.
Или можно все-таки как-то попробовать через htacces ?
SocFishing
sanek1991, у вас nginx, а не apache. Директивы htaccess поддерживаются только apache.
В данном случае, если у вас VPS, то менять конфиг nginx.
server {
listen 80;
server_name mysite.com;
…
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}
sanek1991
sanek1991, у вас nginx, а не apache. Директивы htaccess поддерживаются только apache.
Это понятно, но если картинку вставлять не через обработчик движка, то кеширование есть
То есть например не так:
а так:
Причем значение max-age берет из установок htaccess
jpg
1.jpg
sanek1991
Пробовал через LocationMatch, вываливает ошибку 500
<LocationMatch «^/attachments/»>
Header set Cache-Control «max-age=604800, public»
</LocationMatch>
SocFishing
sanek1991, вы уверены что через htaссess берет, может на PHP прописан header(«Cache-Control: max-age=604800»);
Кстати, у вас может быть связка nginx + apache (как бекенд) в таком случае картинки идут в загрузку через nginx, а PHP идёт через apache. Скорее всего так и есть.
Это хостинг или VPS?
Если хостинг, то вред ли получится, вариант выставить в head метатег
<meta http-equiv=»Cache-Control» content=»max-age=604800, must-revalidate» />
и забить.
Sitealert
Какие нахрен энджинксы и апачи… Сервер вообще не видит никакого файла, поэтому и бесполезно прописывать какие-то серверные директивы.
ivan-lev
Сервер вообще не видит никакого файла, поэтому и бесполезно прописывать какие-то серверные директивы.
Отчего же? По location-у «грепнутому» вполне себе применятся, даже если файлика нет, а бэкенд отдаёт 200.