Как мне разрушить кеш, чтобы пользователи получали все новые статические файлы (например, style.CSS, main.js)? - PullRequest
0 голосов
/ 10 сентября 2018

Я развернул полностью новый редизайн сайта на существующем домене. Я буду вручную заменять все файлы новыми файлами в 12:00, но как мне гарантировать, что пользователи не получат кэшированную версию старого веб-сайта (тем самым сломав все)?

Кроме того, как мне изменить карту сайта, чтобы заменить прежнюю в Google?

Ответы [ 3 ]

0 голосов
/ 10 сентября 2018

Есть несколько способов уничтожить кеш.

Самый простой способ - добавить заголовок истечения срока действия для файлов этого типа. Это можно сделать в конфигурации Apache следующим образом:

<FilesMatch "\.(gif|jpg|js|css)$">
    ExpiresActive On
    ExpiresDefault "access plus 10 years"
</FilesMatch>

Вы также можете использовать новое значение строки запроса в URL для каждого ресурса.

Другой вариант - это обновленный номер версии в имени файла, который направляется в файл обновления.

Вам нужно будет дождаться, пока веб-сканер Google внесет изменения в указатель. Это не то, что вы будете контролировать.

0 голосов
/ 10 сентября 2018

Если вы перемещаете весь сайт, я сомневаюсь, что вы хотите добавить? V1 к каждому файлу.А поскольку ваши файлы уже кэшированы, я не думаю, что это будет очень эффективно в любом случае.Я бы посмотрел на уровне сервера для выбора.Большинство хостов имеют возможность отключить или обновить ваш кеш.Это ваша лучшая ставка!

0 голосов
/ 10 сентября 2018

Есть несколько способов, вы можете использовать такие инструменты, как веб-пакет или плагины из gulp, grunt, который добавит hash к сгенерированному имени файла,

Таким образом, имя файла будет таким

someabc.RandomAlphanumeric.js

где RandomAlphanumeric случайно сгенерированный хеш

Если вы не используете какой-либо инструмент для сборки, вы можете добавить файл, например,

<script type="text/javascript" src="/folder/js/someFile.js?v1"></script>

Обратите внимание на использование ?. Обычно метка времени прикрепляется к имени файла

...