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

Включить кэш браузера


Recommended Posts

Собсно уже дня 3 мозг себе ломаю и никак не пойму в чем дело. Может кто-нить что-то посоветует

 

По рекомендации Google Page Speed - пытаюсь подключить в .htaccess мод expires (тех поддержка утверждает что мод к php подключен, проверил - таки да) 

 

В общем пробовал самые разные варианты (безрезультатно), остановился на стандартном:

<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>

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

Может я что-то упускаю?

 

PS сервер работает на апаче

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


но это ведь не включение кеша...

 

<ifModule mod_headers.c>
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

 

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

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 2 days"
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/gif "access 1 week"
ExpiresByType image/png "access 1 week"
ExpiresByType text/css "access 1 week"
ExpiresByType application/pdf "access 1 week"
ExpiresByType text/x-javascript "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 week"
ExpiresByType image/x-icon "access 1 week"
ExpiresByType application/javascript "access 1 week"
ExpiresByType text/javascript "access 1 week"
</IfModule>

у меня работает

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


А это что?

 

Servernginx/0.7.67

эмм, мне сказали, а я и не перепроверил...

Ок, но в таком случае тут симбиоз nginx + апачь так как правила htaccess в большинстве своем работаю, например на редиректы

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


Во многих случаях nginx полностью подхватывает заголовки апача.

mod_expire - это правда мод апача, а не пхп.

Когда включаешь его, гугл не всегда сразу отдупляет - смотри в браузере, откуда грузятся картинки, из кеша, или с сервера.

Проверь заголовки изображений черех вот это. Если кеширование есть значит включилось

Если ничего не помогло - настраивай nginx.

Если хостинг ukraine.com.ua  - там все настраивается в админке хостинга.

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

Во многих случаях nginx полностью подхватывает заголовки апача.

mod_expire - это правда мод апача, а не пхп.

Когда включаешь его, гугл не всегда сразу отдупляет - смотри в браузере, откуда грузятся картинки, из кеша, или с сервера.

Проверь заголовки изображений черех вот это. Если кеширование есть значит включилось

Если ничего не помогло - настраивай nginx.

Если хостинг ukraine.com.ua  - там все настраивается в админке хостинга.

ну на локалке он работает после перезагрузки сервера, я просил хостера ребутнуть сервак - один фиг...

теперь буду требовать доступ к панеле управления и играться с конфигом nginx

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


<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>

Этот код подойдет для всех или индивидуально у каждого?

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


Для всех индивидуально ( здесь указаны "сроки хранения")

да, про сроки я знаю....  у меня тоже Page Speed ругается на кеш браузера.... а как такое составить для себя? че то гугл внятного ответа не дает или я просто не догоняю...

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


в общем доступы к конфигам мне не дают, а экспериментировать удаленно - это бред.

Попросил прописать правило конфига nginx, которое удалось найти в гугле

 

#!Статический контент!
location ~* \.(jpg|jpeg|gif|png|swf|tiff|swf|flv)$ {
root $webroot;
#Кеширум картинки месяца на 4
expires 4M;
#Кешируем везде (и на прокси и на клиентах)
add_header Cache-Control public;
}
location ~* \.(css|js|ico) {
# разрешаем отдавать вместо несжатого файла предварительно
# сжатый с постфиксом ".gz", если такой есть
gzip_static on;
#запрещаем сжатие файлов CSS и JS для проблемных браузеров
gzip_disable Firefox/([0-2]\.|3\.0);
gzip_disable Chrome/2;
gzip_disable Safari;
#Кешируем месяца на 2
expires 2M;
#Кешируем только на клиентах (ибо сжатое)
add_header Cache-Control private;
}

один фиг - page speed утверждает что кэш не включен. Отложил пока эту хрень в далекий ящик, нужно углублять знания в администрировании серверов. 

 

Пока обоходимся кэшированием на стороне сервера, сайт летает как угорелый, жаль что гуглу на это плевать :)

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


  • 1 year later...

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

 

В общем у своего хостера (reg) нашел в поддержке ответ на свой вопрос: "Настройка кэширования и/или сжатия статических файлов в файле .htaccess на виртуальном хостинге невозможна. Если вам критична настройка gzip и expires, рекомендуем приобрести VPS сервер."

 

Быть может это наблюдение поможет некоторым, так что если этот метод не работает, проблема легко может крыться в хостере, поэтому первым делом стоит проверить - нет ли необходимости переехать к другому :)

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


года четыре назад столкнулся с подобной проблемой, от хостера получил ответ:

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

 

в процессе поиска решения так же столкнулся с проблемами сжатых файлов в Chrome и Safari

в итоге решилось таким путем:

 

1. файлы js и css сжимаем в gzip (например через 7zip), потом их расширение переименовываем с .gz на.jgz

2. складываем переименованные сжатые файлы рядом с оригинальными несжатыми, т.е. был у вас в папке файл style.css, теперь их будет два - style.css и style.css.jgz

3. в .htaccess до строки RewriteEngine On вставляем

# Кеширование картинок, js и css
FileETag MTime Size
<ifmodule mod_expires.c>
 <filesmatch ".(jpg|gif|png|js|css|gz)$">
 ExpiresActive on
 ExpiresDefault "access plus 1 month"
 </filesmatch>
</ifmodule>

<IfModule mod_headers.c>
  <FilesMatch "\.(jpg|gif|png)$">
    Header append Cache-Control "public"  
  </FilesMatch>
</IfModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|gz|jgz)$">
    Header append Vary Accept-Encoding
    Header append Cache-Control "private"  
  </FilesMatch>
</IfModule>

# использование сжатых файлов
AddEncoding gzip .jgz
RewriteCond %{HTTP:Accept-encoding} gzip
# RewriteCond %{HTTP_USER_AGENT} !Safari
RewriteCond %{HTTP_USER_AGENT} !Konqueror
RewriteCond %{REQUEST_FILENAME}.jgz -f
RewriteRule ^(.*)$ $1.jgz [QSA,L]

<IfModule mod_headers.c>
    Header append Vary User-Agent
    <FilesMatch .*\.js.jgz$>
    ForceType text/javascript
    Header append Vary Accept-Encoding
    Header set Content-Encoding: gzip
    Header set Cache-control: private
    </FilesMatch>
    <FilesMatch .*\.css.jgz$>
    ForceType text/css
    Header append Vary Accept-Encoding    
    Header set Content-Encoding: gzip
    Header set Cache-control: private
    </FilesMatch>
</IfModule>

 

и проверяем на работоспособность

  • +1 2
Надіслати
Поділитися на інших сайтах

Если css и js проходят через апач, то сжимать можно средствами php скрипта и самостоятельно отдавать нужные заголовки.

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

Если css и js проходят через апач, то сжимать можно средствами php скрипта и самостоятельно отдавать нужные заголовки.

 

Ога - если на выходе прокладкой стоит Nginx, он их все почикает и глахом не моргнет!

Настраивать надо конфиг Nginx

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

  • 2 months later...

Во многих случаях nginx полностью подхватывает заголовки апача.

mod_expire - это правда мод апача, а не пхп.

Когда включаешь его, гугл не всегда сразу отдупляет - смотри в браузере, откуда грузятся картинки, из кеша, или с сервера.

Проверь заголовки изображений черех вот это. Если кеширование есть значит включилось

Если ничего не помогло - настраивай nginx.

Если хостинг ukraine.com.ua  - там все настраивается в админке хостинга.

Спасибо, помогло:) На ukraine.com.ua всё действительно настраивается в админке.

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


  • 2 months later...

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

 

В общем у своего хостера (reg) нашел в поддержке ответ на свой вопрос: "Настройка кэширования и/или сжатия статических файлов в файле .htaccess на виртуальном хостинге невозможна. Если вам критична настройка gzip и expires, рекомендуем приобрести VPS сервер."

 

Быть может это наблюдение поможет некоторым, так что если этот метод не работает, проблема легко может крыться в хостере, поэтому первым делом стоит проверить - нет ли необходимости переехать к другому :)

 

Так же пользуюсь хостингом reg.ru (тариф Host-2)

Есть ocStore 2.1.0.2.1 с шаблоном coloring - в этой связке Google PageSpeed, что правило "Используйте кеш браузера" не выполнено.

Сейчас попробовал ocStore 2.3.0.2 так же с шаблоном coloring (другой версии) - в этой связке Google PageSpeed пишет наоборот, что правило "Используйте кеш браузера" выполнено. :-)

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


  • 2 months later...
В 12.07.2014 в 18:12, Einshtein сказал:

Собсно уже дня 3 мозг себе ломаю и никак не пойму в чем дело. Может кто-нить что-то посоветует

 

По рекомендации Google Page Speed - пытаюсь подключить в .htaccess мод expires (тех поддержка утверждает что мод к php подключен, проверил - таки да) 

 

В общем пробовал самые разные варианты (безрезультатно), остановился на стандартном:


<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>

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

Может я что-то упускаю?

 

PS сервер работает на апаче

Мне помоголо спасибо!!! + включить gzip  этом же файле

вот так

# Включение gzip сжатия русским трактористом text, html, javascript, css, xml:

AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
SetOutputFilter DEFLATE

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


  • 2 months later...

Подскажите. Как настроить кэширование на стороне браузера в  .htaccess? 

 

Вот мой файл

 

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +SymLinksIfOwnerMatch

# Prevent Directoy listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Order deny,allow
 Deny from all
</FilesMatch>

# SEO URL Settings
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.teploarsenal\.com\.ua$ [NC]
RewriteRule ^(.*)$ http://teploarsenal.com.ua/$1 [R=301,L]
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/ 

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

### Additional Settings that may need to be enabled for some servers 
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
 php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none
AddDefaultCharset utf-8

 

Может подскажите, что ещё в нём не хватает?

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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