Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

Рекомендованные сообещёния

Собсно уже дня 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 в потому чтольшинстве своем рилиию, например на редиректы

Ссылка на комменирий
Погделиться на других сайих


Да, конечно

 

и видимо ngnix настроен на ситику...

Ссылка на комменирий
Погделиться на других сайих

ок, я с nginx на "ВЫ" - какие правила необходимо прописать в конфигах?

 

а хотя стоп, гугл же есть :D

Ссылка на комменирий
Погделиться на других сайих


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

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

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

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

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

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

Ссылка на комменирий
Погделиться на других сайих

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

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

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

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

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

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

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

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

Ссылка на комменирий
Погделиться на других сайих


htaccess он на то и 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>

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

Ссылка на комменирий
Погделиться на других сайих


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

Ссылка на комменирий
Погделиться на других сайих

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

да, про сроки я знаю....  у меня тоже 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 год спустя...

Я в данный момент озиличен решением аналогичной задали и тоже никак не мог понять, почему не удается вклюлить кэш на стороне клиени, гугл все равно говорит, что ничего не рилииет. Попропотому чтовал прогделать икой же метод для сайи на другом хостинге (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 месяца спустя...

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

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

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

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

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

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

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

Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

Я в данный момент озиличен решением аналогичной задали и тоже никак не мог понять, почему не удается вклюлить кэш на стороне клиени, гугл все равно говорит, что ничего не рилииет. Попропотому чтовал прогделать икой же метод для сайи на другом хостинге (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 месяца спустя...
В 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 месяца спустя...

Подскажите. Как настроить кэширование на стороне браузера в  .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

 

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

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.