NginxでWebページを公開する際にCSS、JSが反映されず対応した時の備忘録です。
キャッシュをoffにする
古いページがキャッシュされている場合があるのでブラウザのキャッシュをoffにするのと、設定ファイル(nginx.conf)に以下の設定を追加してnginxのキャッシュをoffにすると直る場合があるらしい。が、今回は試しても解決せず。
# serverディレクティブ内に追記 server { sendfile off; }
nginx.confにrootを指定する。
app/public/assets内に対象のCSSがある場合
HTMLのリンクが以下の形だとして
<link rel="stylesheet" href="/assets/sample.css">
この場合nginxに以下追記すると読み込まれるらしいが、パスは問題なさそうでこれでも解決せず。
root /app/public; # もしくは location ~ ^/assets/ { root /app/public; }
nginxのサーバには以下のように配置
/app/public/assets/sample.css
mime.types、octet-streamの設定をnginx.confに追加
以下の設定追加しないとMIME Typeを拡張子から判定できずエラーになるみたいです。結局これで今回直りました
include /etc/nginx/mime.types; default_type application/octet-stream;
参考