OpenCart 3.x Cache-Control с помощью $ this-> request-> get - PullRequest
0 голосов
/ 02 ноября 2019

Использование Opencart 3.0.3.2 Я разработал модуль, который отображает список продуктов в разделе администрирования Opencart. Каждый продукт имеет кнопку рядом с ним - действие кнопки выглядит следующим образом:

https://example.com/admin/index.php?route=extension/shipping/mymodule&user_token=W0nBWaeKPjpeHFSMb4QmCqmt3sW7hA6Z&product_id=422&active_tab=1&addfree

addfree выбирается в контроллере путем проверки $ this-> request-> get ['addfree'].

Проблема с кэшированием:

У меня установлен один и тот же модуль в версии 2.3.0.2 и в версии 3.0.3.2. Оба имеют практически идентичные файлы .htaccess.

3.x настаивает на загрузке моих URL выше из дискового кэша с Cache-Control: max-age=900, как указано в .htaccess

ExpiresByType text/html                             "access plus 15 minutes"

2.3.0.2загружает те же URL-адреса с Cache-Control: no-store, no-cache, must-revalidate

Я понятия не имею, почему это происходит. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 03 ноября 2019

РЕШЕНИЕ: Как указано в этом сообщении ADD Creative.

Если вы хотите сохранить .htaccess как есть, с временным интервалом кэширования для текстового / html-содержимого, но также отключитеКэшируя ответы и перенаправления OC 3.x, вы можете следовать указаниям в связанном посте выше.

Для себя, как разработчика расширений OC, я решил перейти с вариантом № 3 в этом посте.

Так что при разработке моих расширений для OC 3.x я должен помнить:

  1. Перед каждым $ this-> response-> setOutput (...) следует:
$this->response->addHeader('Cache-Control: no-cache, no-store, must-revalidate'); $this->response->addHeader('Pragma: no-cache');
И предшествовать каждому $ this-> response-> redirect (...) с помощью:
header("Cache-Control: no-cache, no-store, must-revalidate"); header("Pragma: no-cache");

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

Вот и все!

...