LessCSS останавливает стили обработки
Я использую меньше в режиме JS (меньше.js) следующим образом:
<link rel="stylesheet/less" href="assets/styles/less/bootstrap.less" media="all">
<script src="assets/scripts/libs/less-1.1.5.min.js"></script>
и после некоторых просмотров страниц он перестает обрабатывать стили и дает "кэшированную" версию. Чтобы сделать его повторно проанализировать стили, я должен очистить куки-файлы браузера. Кто-нибудь знает почему? Есть ли возможность сделать его повторно проанализировать на каждом просмотре страницы? Большое спасибо!
обновление: просматривая некоторый код библиотеки, кажется, что он использует localStorage для хранения таблиц стилей в качестве кэша. Он основан на последнем измененном времени файла для обновления этого кэша, но по какой-то причине он не работает должным образом, потому что он не принимает мои изменения...
6 ответов
Я только что нашел выпуск в GitHub для этого. Цитируя себя:
это происходит и со мной в 1.1.5. Скрипт использует localStorage для хранения таблиц стилей. Очистка кэша браузера не будет работать. Вы должны очистить это cookies (выход из всех ваших учетных записей,%!@ ^ # % ) или выполнение localStorage.четкий.)( Я использую это перед загрузкой меньше.js (не используя localStorage сам):
<script> /* Provisory for dev environment: */ localStorage.clear(); </script>
при переходе к производству вы просто компилируете файлы .в CSS
хорошая находка с localStorage. Самое быстрое решение-открыть консоль браузера и выполнить следующую команду:
localStorage.clear();
затем обновить и вы установлены.
для отключения кэша localStorage можно использовать следующее:
<script>var less=less||{};less.env='development';</script>
<script src="path_to_less.js"></script>
причина, по которой он кэширует его, заключается в том, что для создания файлов css требуется время, и это время может добавить к плохому пользовательскому опыту, если у вас есть много кода для компиляции.
вы можете поместить это в ваш HTML-документа:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
но это отключит кэширование всех ресурсов, а не только ваших меньших файлов.
лучший способ сделать это было бы передавая noCache=1 в URL, чтобы очистить хранилище localStorage браузера, когда вы разрабатываете меньше файлов, то он устанавливает куки, чтобы помнить, чтобы очистить его каждый раз и тогда вы могли бы поставить noCache=0, чтобы отключить куки, таким образом, конечный пользователь не в конечном итоге, их хранилище localStorage удалены, когда с помощью вашего сайта и вы можете просто оставить его.
$(document).ready(function () {<br>
if(window.location.href.indexOf("noCache=1") > -1) {<br>
$.cookie('noCache', '1', { expires: 1, path: '/' });<br>
localStorage.clear();<br>
}<br>
if(window.location.href.indexOf("noCache=0") > -1) {<br>
$.cookie('noCache', '0', { expires: 1, path: '/' });<br>
}<br>
if ($.cookie('noCache') == '1'){<br>
alert ("disabled Cache");<br>
localStorage.clear();<br>
}<br>
});<br>
<br>
вам понадобится jQuery и cookie-файлов плагин для этого, чтобы работать
вы также можете добавить уникальный параметр для предотвращения кэширования, например, если вы используете php:
<link rel="stylesheet/less" href="assets/styles/less/bootstrap.less?v=<?= uniqid() ?>" media="all">