Избегайте кеширования браузера на стороне клиента - PullRequest
0 голосов
/ 04 февраля 2020

У нас есть сайт (чистый html / js / css). На страницах нашего сайта у нас есть ссылки на файлы PDF, эти ссылки выглядят так: <a href="../files/myFile.pdf">My file link</a>. Итак, проблема: иногда нам нужно обновить наши PDF-файлы. Мы обновляем эти файлы, затем go на сайт, нажимаем ссылку - и мы видим старый файл. Ctrl+F5 или F5 в Firefox - и мы видим обновленный файл. Это не хорошо. Я думаю, что эта проблема вызвана кешированием.
На страницах нашего сайта (html страниц, которые содержат ссылки) мы добавили такие теги:

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">

Но это не помогает. Как мы можем избежать кэширования на стороне клиента? Я прочитал несколько вопросов здесь. Это решение было взято из stackoverflow) Также я знаю о добавлении случайного параметра в URL страницы, но некоторые ребята говорят, что это плохой способ.
Пожалуйста, помогите с этой проблемой. Можем ли мы избежать кэширования на стороне клиента только с JS? Возможно, это возможно с файлом .htaccess на стороне сервера, но у нас нет доступа к нему.

1 Ответ

0 голосов
/ 04 февраля 2020

Вы можете отключить кэширование на веб-сервере Nginx или Apache:

    location /pdf_file_location {
        root /your/site/public;
        index index.html;

        # kill cache
        add_header Last-Modified $date_gmt;
        add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        if_modified_since off;
        expires off;
        etag off;
    }

Более подробную информацию об этом вы можете прочитать здесь

Или в проще всего добавить переменный параметр в URL (вы можете сгенерировать последовательность, метку времени, фиксированную версию файла или любое другое случайное значение):

<a href="../files/myFile.pdf?v=1580807492744">My file link</a>

?v=1580807492744 - если значение изменяется, кеш не будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...