Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Включит кэш браузера посетителя


Recommended Posts

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

Надіслати
Поділитися на інших сайтах


в .htaccess добавить

# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>


# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>


# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>


# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
  • +1 1
Надіслати
Поділитися на інших сайтах

Спасибо большое! но при установке PageSpeed Insights все равно пишет включите кэш браузера

 

для каких файлов? скорее всего это для сторонних файлов. вы приятно удивитесь - но это касается и файлов самого гугля))

Надіслати
Поділитися на інших сайтах

  • 1 year later...

 

в .htaccess добавить

# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>


# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>


# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>


# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>

Спасибо помогло

Надіслати
Поділитися на інших сайтах


  • 6 months later...

Не хочу показаться некропостером, но имею аналогичную проблему, связка apache+nginx. Гугловый page speed говорит, что кэша нет. Использую такие настрйоки NGINX (как я понимаю, чтоб кэшировать статику - нужно настраивать именно его, а не апач) - эффекта ноль
 

Цитата

    server {
        server_name localhost;
        disable_symlinks if_not_owner;
        listen 80;
        include /etc/nginx/vhosts-includes/*.conf;
        #KAM
        #error_page 502  /index.php;
        #KAM
        location @fallback {
            #error_log /dev/null crit;
            error_log /var/log/nginx/error.log info;
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080 /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            access_log off ;
        }
        add_header Cache-Control public;
#######################
        #кэширование
#        proxy_cache one;
        location ~* \.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js|min)    {  
            expires 1m;    
                #Кешируем везде (и на прокси и на клиентах)
                add_header Cache-Control public;
#            root /var/www/andrzej/data/www/nicoa.ru/;
            root /var/www/andrzej/;
        }
        # Кешировать указанные коды ответов 5 минут
        proxy_cache_valid 200 301 302 304 5m;
            # Ключ по которому сохраняются и берутся данные из кеша
        proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
            # Защита от раздачи одинаковой куки в кешированном ответе
        proxy_hide_header "Set-Cookie";
            # Игнорировать параметры кеша заданные бекэндом
        #proxy_ignore_headers "Cache-Control" "Expires";
            # Указывает в каких случаях клиенту можно отдать несвежий ответ из кеша
        proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
        #пути для кэширования
        #proxy_cache_path /var/cache/nginx/ levels=2:2 keys_zone=default:100m;
            # активировать зону кеширования pagecache
        #proxy_cache    pagecache;
        #location ~* \.(jpg|png|gif|jpeg|css|js)$ 

    }

 

Надіслати
Поділитися на інших сайтах


8 минут назад, kamakama сказал:

server_name localhost;

Не ноль, а прекрасный эффект... на локалхосте :-D

 

Это нужно писать не в какой попало конфиг, а в конфиг конкретно вашего сайта - это первое. А второе: proxy_cache и все директивы с этого начинающиеся не имеют отношения к кешированию статики в браузере - это кеш для бекенда, то есть, чтоб nginx  получив от бекенда (ОК через Апач в вашем случае) ответ, сохранил его в файл и при следующем таком же запросе уже не обращался к бекенду, а выдернул ответ из кеша.

 

Для кеширования статики достаточно этого блока:

location ~* \.(?:jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js|min) {
	expires 1M;
	add_header Cache-Control public;
	root /var/www/andrzej/;
}

 

И очень внимательно посмотрите на букву м! Потому что 1m - это 1 минута, а не 1 месяц.

Надіслати
Поділитися на інших сайтах


Конфиг общий для всего NGINX - nginx.conf
Спасибо, не заметил:) Но не помогло - теперь вот так

server {
        server_name www.nicoa.ru nicoa.ru;
        disable_symlinks if_not_owner;
        listen 80;

...
        location ~* \.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js|min|html|htm)$    {  
            expires 2w;    
                #Кешируем везде (и на прокси и на клиентах)
                add_header Cache-Control public;
            root /var/www/andrzej/data/www/nicoa.ru/;
        }

}

Змінено користувачем kamakama
Надіслати
Поділитися на інших сайтах


21 минуту назад, kamakama сказал:

Конфиг общий для всего NGINX - nginx.conf

Чтоб применить изменения из этого конфига, надо делать рестарт nginx, релоад работает только для конфигов, которые он инклюдит.

Только перед рестартом сделайте

nginx -t

чтоб убедиться, что нигде нет ошибок.

Надіслати
Поділитися на інших сайтах


Ну, я могу предположить только два варианта: либо есть ещё один блок location для статики и там кеширования нет, либо вообще весь этот server блок не работает.

Надіслати
Поділитися на інших сайтах


        location @fallback {
            #error_log /dev/null crit;
            error_log /var/log/nginx/error.log info;
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080 /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            access_log off ;
        }

Есть только такой блок. А каким образом проверить видимость блока server? Подойдет поменять порт listen и попробовать обратиться к серверу?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.