Jump to content

Recommended Posts

Клиент переехал на новую версию движка.
Но в кэше браузера естественно остались файлы от старой версии (мало времени прошло с последнего посещения).
Естественно при открытии сайта все расползлось.
А еще клиент был в дороге и смотрел с мобилы (Ctrl-F5 не нажмешь).
А еще ОН (клиент) - это ОНА, со всеми вытекающими.
Пришлось отсылать скрины как чистить кэш браузера.
Потом она заявила, что дескать старые клиенты (читай клиентки, сайт - магазин косметики) тоже зайдя на страницы ужаснутся и больше не придут, поскольку им (крашеным блондинкам) невдомек почему это случилось и как исправить подобное самостоятельно, ибо они вашпе не знают об такой операции.

Можно ли как-то заставить сайт денек-другой принудительно обновлять кэш браузера?
Знаю что костыль, но им же не докажешь!
Смотрел в сторону location.reload(true), но хочется сделать это грамотно.

Может есть более-менее красивое решение?

Share this post


Link to post
Share on other sites

Хм...
Как вариант можно временно использовать конструкции типа:

<link rel="stylesheet" type="text/css" href="/css/file.css?v=<?php echo rand(1000,10000) ?>">

Тоже костыль, но все же не полный релоад страницы.

Share this post


Link to post
Share on other sites

Можно к css и js добавить версию.

<script type="text/javascript" src="myscript.js?v=3.0"></script>

 

 

Share this post


Link to post
Share on other sites

Я это и имел в виду.
По моему лучше не придумать.
Что скажут гуру?

Share this post


Link to post
Share on other sites
1 минуту назад, Wild сказал:

Как вариант можно временно использовать конструкции типа:

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

Share this post


Link to post
Share on other sites

https://habr.com/post/62844/

 

17 минут назад, Wild сказал:

Можно ли как-то заставить сайт денек-другой принудительно обновлять кэш браузера?

Cache-Control: max-age=86400

Share this post


Link to post
Share on other sites
3 минуты назад, ibond сказал:

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

Я понял.
Еще варианты есть?
Покрасивше.
Я в душе перфекционист.

Share this post


Link to post
Share on other sites
1 минуту назад, AlexDW сказал:

https://habr.com/post/62844/

 

Cache-Control: max-age=86400

СПАСИБО!!!!!!!!!!!!!!!!!
Низкий поклон!!!

Share this post


Link to post
Share on other sites
1 минуту назад, Wild сказал:

Еще варианты есть?

Добавить размер файла.

<script type='text/javascript' src='path/to/file/mylibrary.js?v=<?=filesize('path/to/file/mylibrary.js')?>'></script>

 

Share this post


Link to post
Share on other sites
1 минуту назад, ibond сказал:

Добавить размер файла

 

лучше не размер, а дату изменения filemtime

размер-то может и не измениться

Share this post


Link to post
Share on other sites

Причем статья на хабре почти 10-летней давности! )))

Share this post


Link to post
Share on other sites
4 минуты назад, AlexDW сказал:

 

лучше не размер, а дату изменения filemtime

размер-то может и не измениться

А вот это красивое решение.

Share this post


Link to post
Share on other sites
23 минуты назад, ibond сказал:

Можно к css и js добавить версию.

<script type="text/javascript" src="myscript.js?v=3.0"></script>

 

 

Это статика, т.е нужно где-то менять версию, мало того
это было бы неплохо делать в getScript, getStyle


 

Share this post


Link to post
Share on other sites
33 минуты назад, chukcha сказал:

Это статика, т.е нужно где-то менять версию, мало того
это было бы неплохо делать в getScript, getStyle


Согласен, но если честно, то лениво перекапывать все модули и модификаторы.
Пока попробовал тупо header.
Пусть потестит, дальше будет видно.

Share this post


Link to post
Share on other sites
54 минуты назад, AlexDW сказал:

 

лучше не размер, а дату изменения filemtime

размер-то может и не измениться

был 1 проект, там поставили просто дату и время :-D:-D

Share this post


Link to post
Share on other sites
В 20.12.2018 в 15:58, ibond сказал:

Добавить размер файла.

<script type='text/javascript' src='path/to/file/mylibrary.js?v=<?=filesize('path/to/file/mylibrary.js')?>'></script>

 

Лучше добавить не filesize а filemtime, т.к. при правке файлов переодически заменяется несколько символов и в итоге размер файла остаётся неизменным, а время редактирования файла изменяется всегда. Таким образом можно получить стабильное обновление файла из кеша при любых изменениях

Share this post


Link to post
Share on other sites
5 часов назад, VitaliyCe сказал:

Лучше добавить не filesize а filemtime, т.к. при правке файлов переодически заменяется несколько символов и в итоге размер файла остаётся неизменным, а время редактирования файла изменяется всегда. Таким образом можно получить стабильное обновление файла из кеша при любых изменениях

 

Тему не читаете? Да, согласен, что перИдически заменяется несколько символов...

В 20.12.2018 в 13:03, AlexDW сказал:

лучше не размер, а дату изменения filemtime

 

Share this post


Link to post
Share on other sites

Controller:
$cssfile = '/catalog/view/theme/' . $this->config->get('config_template') . '/stylesheet/stylesheet.css';
$data['cssdate'] = date ("igdmy", filemtime($cssFile));

tvig Header:
<link rel="stylesheet" href="catalog/view/theme/theme/stylesheet/stylesheet.css?v={{ cssdate }}" media="screen" />

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Mishanya1
      Нужен интернет-магазин на двух языках (русский и иврит).
      Понравился такой шаблон: https://opencartforum.com/files/file/3870-adaptivnyy-mnogomodulnyy-shablon-modern-v2/
      Нужен человек, который доделает иврит (RTL).
      Если есть другой готовый шаблон с ивритом, то пишите.
       
    • By Verwolf
      350.00 руб
      Скачать/Купить дополнение


      Auto Cache Cleaner (ACCleaner) OC 3
      Простой модуль, позволяющий автоматизировать процесс очистки кэша сайта.
       
      Позволяет освободить дисковое пространство на хостинге за счёт удаления закэшированных данных модулей и расширений, которые не используются.
       
      Очистка кэша запускается автоматически при следующих действиях в админке:
      отключение модификации; удаление модификации; удаление какого-либо расширения (из любой категории).  
      Также данный модуль способствует увеличению производительности сайта в целом и уменьшает время ответа сервера за счёт уменьшения запросов к не используемым файлам кэша.
       
      Производит очистку:
      системного кэша OpenCart; кэша изображений.  
      Более подробно о назначении каждого Вы можете прочитать по ссылке - http://cccp-blog.com/opencart/kak-v-opencart-ochistit-kehsh
       
      Очистка кэша запускается при каждом удалении расширеания и модификации через админку. Также после установки доступна возможность очистки кэша вручную, не дожидаясь удаления модулей, с помощью кнопки Clear Cache в боковом меню панели администратора в меню System.
       
      При установке пользуйтесь инструкцией, описанной в файле readme.txt (в архиве). Также в инструкции подробно рассмотрен процесс удаления модуля с сайта.
       
      Версия для OpenCart 1.5 - https://opencartforum.com/files/file/3049-auto-cache-cleaner-accleaner-oc-15/
      Версия для OpenCart 2 - https://opencartforum.com/files/file/6937-auto-cache-cleaner-accleaner-oc-2/
       
       
      Добавил Verwolf Добавлено 28.03.2019 Категория Кэширование, сжатие, ускорение Системные требования Сайт разработчика http://cccp-blog.com Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена  
    • By urbanmike
      Добрый день, форумчане, подскажите пожалуйста, как можно исключить кэширование корзины, т.е. проблема в следующем:
      - Перехожу в категорию, выбираю товар, товар отображается в корзине
      - Возвращаюсь на главную, корзина пустая (если применить ctrl+f5 товар отобразится)
      - Перехожу в другую категорию, выбираю товар, товар отображает в корзине (один)
      - Перехожу в корзину, отображается 2 товара.
       
      Настройки такие
       
      SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteCond %{REQUEST_URI} !robots\.txt RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] Options +FollowSymlinks -Multiviews -Indexes RewriteBase / RewriteCond %{THE_REQUEST} /blog/article\.php\?id=([^\s&]+) [NC] RewriteRule ^ blog/article/%1? [R=302,L] RewriteRule ^blog/article/([^/.]+)/?$ /blog/article.php?id=$1 [L,QSA,NC] Header unset ETag FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> Header unset Last-Modified Header set Expires "Fri, 21 Dec 2100 00:00:00 GMT" Header set Cache-Control "public, no-transform, max-age=31536000" </FilesMatch> <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month" <ifModule mod_headers.c> <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> <FilesMatch "\.(js|css|txt)$"> Header set Cache-Control "max-age=604800" </FilesMatch> <FilesMatch "\.(flv|swf|ico|gif|png|jpg|jpeg)$"> Header set Cache-Control "max-age=2592000" </FilesMatch> <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch> </IfModule> </IfModule> FileETag MTime Size <ifmodule mod_expires.c> <filesmatch "\.(jpg|gif|png|css|js)$"> ExpiresActive on ExpiresDefault "access plus 1 year" </filesmatch> </ifmodule> <ifModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript </ifModule> # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. # 2. In your opencart directory rename htaccess.txt to .htaccess. # For any support issues please visit: http://www.opencart.com Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "(?i)((\.tpl|.twig|\.ini|\.log|(?<!robots)\.txt))"> Require all denied ## For apache 2.2 and older, replace "Require all denied" with these two lines : # Order deny,allow # Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On # 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=extension/feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L] RewriteRule ^system/storage/(.*) 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] RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}] RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}] ### 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 Ранее грешил на JetCache, но с выключенным ситуация такая же, убирал из htaccess mod_expires и mod_headers, не помогло, окончательно запутался в настройках htaccess
    • By panamaegoist
      Необходимо обновить магазин с 1.5.5.1.2 до  2.3.0.2.3
    • By malinator
      Добрый день. Почему то не обновляются изображения у товаров.
      На сайте куча изображений. Решил обновить все сразу пачкой. Обработал фото в фотошопе, сохранил с такими же названиями 1 в 1 как есть на сайте, залил.
      Сбросил кэш, обновил модификаторы. Результата, нет. Как показывалось то что было ранее так и показывается.
      Подскажите, что делать/
       
      Заранее спасибо.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.