LINUX.ORG.RU

Обновление CSS в Laravel

 , ,


0

1


Народ, а поясните за CSS, такая чехорда творится...

1. Подключаю я в /resources/assets/sass/app.scss через @import новый CSS-файл.

2. Запускаю компиляцию npm run dev

3. Проверяю файл /public/css/app.css, в нем есть новые CSS классы.

4. Обновляю страницу в Firefox - судя по внешнему виду, css обновилась раза с третьего... Ну хорошо что обновилось. Смотрю в сетевую консоль - там файл app.css приходит с кодом 200. Он соответствует тому что лежит на диске сервера. Вроде все хорошо.

5. Обновляю страницу в Cromium - css не обновляется. Смотрю в сетевую консоль - файл app.css приходит тоже с кодом 200, но его содержимое старое, без новых CSS-классов.

Это как так-то?

Laravel свежей установки 5.5.45, никаких кеширований не настраивал, все по дефолту. Работает через NGinx, в нем тоже минимальный конфиг.

★★★★★

В Chromium есть функция «Очистка кэша и жесткая перезагрузка», это, наверное, то что нужно.

CryNet ★★★★★ ()
Ответ на: комментарий от CryNet

Как правило достаточно просто https://i.imgur.com/CE7wnWZ.png ну а что бы пользователи почувствовали это надо изменить url ресурса что бы его перезагрузили - это как самое простое решение.

Noob_Linux ★★★ ()

никаких кеширований не настраивал, все по дефолту

Это кэш браузера. Для себя можно просто отключить, как уже показали. А вообще добавляй к url ресурсов версию, типа

www.ololo.local/some/asset/my.css?v=1.42
которая должна обновляться при ребилде и твои волосы станут мягкие и шелковистые.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Оказывается, для версионирования есть готовые инструменты.

В webpack.mix.js пишем правила компиляции с дополнительным методом .version():

mix.js('resources/assets/js/app.js', 'public/js').version();
mix.sass('resources/assets/sass/app.scss', 'public/css').version();


А скомпилированные файлы подключаем в шаблонах через функцию mix(), вот так:
<!-- Application CSS -->
<link rel="stylesheet" href="{{ mix('/css/app.css') }}"/>

<!-- Application JS (подключение скриптов коротким тегом писать нельзя)-->
<script src="{{ mix('/js/app.js') }}"></script>

Xintrea ★★★★★ ()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

сетевой инспектор показывает что файл передан с кодом 200?

А ты открой конкретный запрос, там будет написано «from memory cache».

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

А ты открой конкретный запрос, там будет написано «from memory cache».

Там писалось что-то типа «from disk cache».

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

А с каким он должен быть? Ты смотришь не туда, смотри на колонку Size

Noob_Linux ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.