О, черт
Это был Nginx!
Кратко:
rm -rf /var/nginx/cache/*`
Мгновенное решение!
Опционально: Отключить кэширование ассетов в Nginx
Отредактируйте этот файл:
/etc/nginx/conf.d/discourse.conf
Примерно на строках 243–246 закомментируйте директивы кэширования:
# proxy_cache one;
# proxy_cache_key "$scheme,$host,$request_uri";
# proxy_cache_valid 200 301 302 7d;
# proxy_cache_bypass $bypass_cache;
Затем перезапустите Nginx:
sv restart nginx
Если вы меняете цветовые палитры…
Просто редактирование настроек цветов в теме не пересоздаст embed_[digest].css. Чтобы заставить Discourse сгенерировать новые файлы ассетов, сделайте следующее:
rm tmp/stylesheet-cache/* # или, только для embed, `rm tmp/stylesheet-cache/embed*`
А что насчёт RAILS_ENV=development?
Возможно, вы думаете, что установка RAILS_ENV: development отключит кэширование, но:
- Файл
nginx.sample.conf, используемый Discourse, имеет кэширование включённым по умолчанию, независимо от окружения - Это кэширование не связано с
RAILS_ENV, поэтому оно не поможет с кэшированием встроенных ассетов
Поэтому, если вы не планируете полностью перенастраивать слой Nginx, просто очистите кэш вручную или закомментируйте эти строки, и всё будет хорошо. Когда будете готовы к продакшену, сможете вернуть всё как было.
А что насчёт ./launcher rebuild standalone?
Конечно, это работает. Но если вы активно настраиваете темы, тестируете embed-элементы и подгоняете цвета… вам понадобится что-то быстрее, чем ожидание несколько минут каждый раз.