ああ、しまった
Nginxだった!
TL;DR:
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 を設定するとキャッシュが無効になると思うかもしれませんが、以下の理由によります:
- Discourseが使用する
nginx.sample.confは、環境に関係なくデフォルトでキャッシュが有効になっています。 - そのキャッシュは
RAILS_ENVに紐づいていないため、埋め込みアセットキャッシュには役立ちません。
Nginxレイヤーを完全に再設定する予定がない限り、手動でキャッシュをクリアするか、それらの行を無効にするだけで済みます。本番環境の準備ができたら、元に戻すことができます。
./launcher rebuild standalone については?
確かに、それは機能します。しかし、テーマを積極的に調整したり、埋め込みをテストしたり、色を調整したりしている場合は、毎回数分待つよりも速い方法が必要になるでしょう。