Встраивание тем активов

О, черт :flushed_face: Это был 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

:artist_palette: Если вы меняете цветовые палитры…

Просто редактирование настроек цветов в теме не пересоздаст embed_[digest].css. Чтобы заставить Discourse сгенерировать новые файлы ассетов, сделайте следующее:

rm tmp/stylesheet-cache/* # или, только для embed, `rm tmp/stylesheet-cache/embed*`

:thinking: А что насчёт RAILS_ENV=development?

Возможно, вы думаете, что установка RAILS_ENV: development отключит кэширование, но:

  • Файл nginx.sample.conf, используемый Discourse, имеет кэширование включённым по умолчанию, независимо от окружения
  • Это кэширование не связано с RAILS_ENV, поэтому оно не поможет с кэшированием встроенных ассетов

Поэтому, если вы не планируете полностью перенастраивать слой Nginx, просто очистите кэш вручную или закомментируйте эти строки, и всё будет хорошо. Когда будете готовы к продакшену, сможете вернуть всё как было.

:turtle: А что насчёт ./launcher rebuild standalone?

Конечно, это работает. Но если вы активно настраиваете темы, тестируете embed-элементы и подгоняете цвета… вам понадобится что-то быстрее, чем ожидание несколько минут каждый раз.

:speech_balloon: Есть лучший подход для разработки или быстрые решения? Присоединяйтесь к обсуждению!