ローカル環境でCSSの内容を変更した時、変更内容が反映されない場合があります。

cssの構文間違ってたかなぁとChromeの検証ツールで確認しても、変更したはずの記述が何も出てこない。

ブラウザのキャッシュをクリアしてもダメ。

これは困ったなぁと。。( ・(ェ)・)クマッタ

過去のノートを見直したら解決方法のメモがありました。

偉いぞ!過去の俺!

というわけで、いつでも見返せるようにここで綺麗にまとめておきます。

 

原因

開発環境にApacheを使用している場合、httpdの設定にEnableSendfileという機能があります。

一度読み込んだ静的なファイル(cssとかhtml、js)は再度読み込まずに、キャッシュ内容を送る機能です。

EnableSendfileとは

Apacheの機能の一つ
一度読み込んだ静的なファイル(HTML/CSS, JavaScript)は、再度読み込まずにキャッシュ内容を送る

本番環境だとリクエスト数を減らすことができるので便利なのですが、開発環境では頻繁にファイルを更新するので必要ないです。

初期状態ではこのEnableSendfileがオンになっているので、オフにしてさしあげます。

 

EnableSendfile機能をoffにする

Apacheの設定は/etc/httpd/conf/httpd.confにあります。

vimかviでhttpd.confを開いて、EnableSendfileの行を「off」に修正し、保存。

 


vi /etc/httpd/conf/httpd.conf

 

設定後はhttpdの再起動を忘れずに。


systemctl restart httpd

 

Nginxの場合

NginxにもApacheと同様の機能があり、/etc/nginx/nginx.confで設定を変更できます。


vi /etc/nginx/nginx.conf

「sendfile」の項目をonからoffにします。

Nginxのコンフィグファイルの画像

 

まとめ

サクサク変更分が反映されるようになりました。

やったね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*