LessCSS прекращает обработку стилей - PullRequest
8 голосов
/ 27 декабря 2011

Я использую Less в режиме JS (less.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 ]

17 голосов
/ 27 декабря 2011

Я только что нашел проблему в GitHub для этого.Цитирую себя:

Это происходит со мной также в 1.1.5.Скрипт использует localStorage для хранения таблиц стилей.Очистка кэша вашего браузера не будет работать.Вы должны очистить его куки (выход из всех ваших учетных записей,%! @ ^ #%) Или выполнить localStorage.clear ().Я использую это перед загрузкой less.js (сам не использую localStorage):

<script> /* Provisory for dev environment: */ localStorage.clear(); </script>

При переходе в производство вы просто компилируете таблицы стилей в .css

5 голосов
/ 09 июня 2012

Хорошая находка с местным хранилищем. Самое быстрое решение - открыть консоль браузера и запустить следующую команду:

localStorage.clear();

Затем обновите, и все готово.

4 голосов
/ 02 января 2012

Вы можете использовать следующее для отключения кэша localStorage:

<script>var less=less||{};less.env='development';</script>
<script src="path_to_less.js"></script>
0 голосов
/ 08 июля 2016

Вы также можете добавить уникальный параметр для предотвращения кэширования, например, если вы используете php:

<link rel="stylesheet/less" href="assets/styles/less/bootstrap.less?v=<?= uniqid() ?>" media="all">
0 голосов
/ 23 мая 2013

Лучший способ сделать это - передать noCache = 1 в URL, чтобы очистить браузер localStorage, когда вы разрабатываете меньше файлов, затем он устанавливает cookie, чтобы не забывать очищать его каждый раз, а затем вы можете поместить noCache = 0, чтобы удалить cookie, таким образом, конечный пользователь не в конечном итоге удалит свое 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 плагин, чтобы это работало

0 голосов
/ 27 декабря 2011

Причина, по которой он кешируется, заключается в том, что для генерации файлов CSS требуется время, и это время может привести к плохому пользовательскому опыту, если у вас много кода для компиляции.ваши HTML-документы:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

Но это отключило бы кэширование всех ресурсов, а не только ваших меньших файлов.

...