правильно кэшировать ресурсы - PullRequest
0 голосов
/ 15 апреля 2020

У меня проблема с кешем в моем laravel 6 админе. Настройки для кэша в .htaccess:

    <filesMatch "\.(xml|csv|txt)$">
      FileETag None
      <ifModule mod_headers.c>
         Header unset ETag
         Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
         Header set Pragma "no-cache"
         Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
      </ifModule>
    </filesMatch>

    ## CACHE CONTROL ##
    <IfModule mod_headers.c>
        Header append Cache-Control "public"
    </IfModule>

    ## EXPIRES CACHING ##
    <IfModule mod_expires.c>
        <ifModule mod_headers.c>
             Header set Cache-Control "max-age=31536000"
        </ifModule>
        ExpiresActive On
        ExpiresByType image/jpg "access plus 1 year"
        ExpiresByType image/jpeg "access plus 1 year"
        ExpiresByType image/gif "access plus 1 year"
        ExpiresByType image/png "access plus 1 year"
        ExpiresByType text/css "access plus 1 month"
        ExpiresByType application/pdf "access plus 1 month"
        ExpiresByType text/x-javascript "access plus 1 month"
        ExpiresByType application/x-shockwave-flash "access plus 1 month"
        ExpiresByType application/x-javascript "access plus 1 month"
        ExpiresByType text/javascript "access plus 1 month"
        ExpiresByType application/javascript "access plus 1 month"
        ExpiresByType application/json "access plus 1 month"
        ExpiresByType image/x-icon "access plus 1 year"
        ExpiresDefault "access plus 2 days"
    </IfModule>

Пример: я добавляю новый продукт ... но продукт не появляется в списке - ТОЛЬКО ЕСЛИ я перезагружаю браузер или открываю Консоль dev с включенным «отключить кеш» - это очень раздражает (и это не нормально для администратора). В админке мне не нужен кеш.

Это может быть проблемой?

<ifModule mod_headers.c>
    Header set Cache-Control "max-age=31536000"
</ifModule>

Я не очень знаком с htaccess.

Для кеша я необходимо кэшировать javascript, css, изображения ... а не содержимое страницы (поскольку страницы являются динамическими c).

Я отключил кэш для этих файлов (xml | csv | txt), потому что эти файлы - некоторые каналы для других магазинов (и они обновляются ежедневно)

Как правильно кэшировать? Что я сделал не так в htaccess?

ОБНОВЛЕНИЕ

Я изменил настройки кэширования htaccess на это .... и я тестирую сейчас.

   # DISABLE CACHE FOR THIS FILES
   <filesMatch "\.(xml|csv|txt|json)$">
        FileETag None
        <ifModule mod_headers.c>
            Header unset ETag
            Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
            Header set Pragma "no-cache"
            Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
        </ifModule>
   </filesMatch>

   ## CACHE CONTROL ##
   <IfModule mod_headers.c>
        Header append Cache-Control "public"
        <filesMatch "\.(css|js|jpg|jpeg|png)$">
            Header set Cache-Control "max-age=31536000"
        </filesMatch>
   </IfModule>

   ## EXPIRES CACHING ##
   <IfModule mod_expires.c>
       ExpiresActive On
       ExpiresDefault "access"
       ExpiresByType image/jpg "access plus 1 year"
       ExpiresByType image/jpeg "access plus 1 year"
       ExpiresByType image/gif "access plus 1 year"
       ExpiresByType image/png "access plus 1 year"
       ExpiresByType text/css "access plus 1 month"
       ExpiresByType text/x-javascript "access plus 1 month"
       ExpiresByType application/x-javascript "access plus 1 month"
       ExpiresByType text/javascript "access plus 1 month"
       ExpiresByType application/javascript "access plus 1 month"
   </IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...