В последнее время я видел много проблем в Google Chrome (в других браузерах он работает нормально, кроме Safari на Mac) при загрузке новой версии таблицы стилей ( .css
) или скрипта javascript ( .js
), я думал, что смогу это решить по простому:
<link rel="stylesheet" href="/private/css/visual.css?v=1" />
<script src="/private/js/visual.js?v=1"></script>
Но это не всегда работает для меня, и мне приходится постоянно менять значение v=1
, чтобы оно загружало новые версии соответствующих файлов.
Есть ли способ предотвратить кеширование должным образом?
Получите библиотеку, собственный код javascript, что-то, что можно добавить в мои файлы .css
или .js
, изменить на моем сервере, изменить на моем компьютере, настройки браузера и т. д. и избежать этой проблемы.
ПРИМЕЧАНИЕ . Кэш остается как локальным, так и уже размещенным на сервере/домене .
ОБНОВЛЕНИЕ: Возможно, сначала я был не очень ясен, хотя ответы и производные от JuankGlezz помогают мне в среде разработки, я ищу ответ, который может служить моим конечным пользователям без необходимости что-либо трогать ...
Это можно использовать в производственных и отладочных средах, если вы один из тех, кто постоянно модифицирует SCRIPT и CSS веб-страниц, но вы обычно не держите консоль браузера открытой и хотите избежать кеша, вы можете добавить следующее строки в HTML.
В WordPress, чтобы добавить теги,
</head>
мы должны отредактировать шаблон или тему , в частности, мы должны отредактировать файл,header.php
в котором расположены теги<head>
и</head>
.В приложении, разработанном на PHP, вы можете заставить его не сохранять кеш в браузере, вы можете использовать следующие строки:
Если вы разработчик и не хотите добавлять предыдущие строки, вы можете избежать кеша из консоли браузера (F12).
Рекомендуется оставить консоль браузера открытой (F12) и включить флажок отключения кеша на вкладке сети .
Для Firefox откройте консоль отладчика (F12)
Один из способов — когда вы ссылаетесь на файлы JavaScript, которые вы помещаете в конце
?1
, Это означает, что?1
это какая-то версия файла, так что браузер перезагружает его снова и не загружает кэшированные файлы. Например:Рекомендуется иметь какую-то функцию, чтобы после вопросительного знака я генерировал случайное число.
Преимущество использования этой функции в том, что она не требует вмешательства пользователя.
Обновлять
Поскольку вы используете решение PHP, было бы лучше сгенерировать динамическое число для версии файла JavaScript или CSS, чтобы гарантировать, что файл всегда загружается с сервера, а не из кеша браузера, используя функцию
rand()
для создания случайного количество.Например:
Вы можете проверить этот способ, если ваш файл имеет расширение .php :
И если вы хотите сделать это из JS, возможно, вам поможет что-то вроде этого:
Просто помните, что если вы используете код JS, ваши файлы JS или CSS должны быть загружены первыми, а затем сразу же обновлять атрибут src или href .
Если вы всегда хотите избежать кеша, вы можете сделать:
Или же динамически создайте ссылку, помните, что переменная
estilos
может быть набором строк.Я делаю следующее:
Я проверяю, что в коде нет ошибок.
Я использую комбинацию Control + Shift + R
Открываю консоль и захожу в раздел сети, после чего нажимаю F5, чтобы посмотреть, правильно ли импортируются файлы.
Другим способом избежать кеша, например, вашего css или js, будет изменение .htaccess вашего apache, чтобы предотвратить его кеширование или ограничить время жизни, это поможет вам загружать ваши js реже время и код состояния css = 200, а не 304, что он получает, когда ресурс уже находится в кеше.
либо
Если вы используете сервер Apache в Linux , вы можете сделать следующее:
активировать mod_expire :
измените файл /etc/apache2/apache2.conf и добавьте следующее:
Затем перезапустите сервер Apache:
при этом вы должны разрешить кеш на клиенте. однако вы должны знать, что на рабочем сервере вам следует увеличить значение переменной ExpiresDefault .
Другой вариант, который вы можете применить, — это автоматическая версия вашего файла
CSS y JS
.ОПЦИЯ 1:
Добавьте
versión
(например , дату последней модификации файла ) в качестве переменной в файлpath
.Так:
Мы создаем функцию, которая получает дату последнего изменения (например:
filemtime
) файла и объединяет ее как переменную с файломpath
.Затем мы вызываем эту функцию для файлов версии.
Результат будет примерно таким:
ВАРИАНТ 2
Предполагая, что вариант 1 «не всегда работает для вас» и следуя той же строке, мы можем добавить
versión
как часть имени файла и.htaccess
переписавpath
их.Так:
Мы создаем функцию, которая получает дату последнего изменения (например:
filemtime
) файла и включает ее как часть имени файла.Затем мы вызываем эту функцию для файлов версии.
Результат будет примерно таким:
Создаем файл
.htaccess
правило для перевода этих "маршрутов"