VagrantでCSSを更新しても反映されないのは共有ディレクトリを使っているから

TECH
2016.10.09
Pocket

VagrantでCSSを更新しても反映されないのは共有ディレクトリを使っているから

WordPressでサイトを作ろうとするとローカルでWebサーバーとDBサーバーを立てる必要があります。
そんな時に便利なのがVagrantです。
簡単に言うとすごい簡単にローカルに開発環境を構築することができる便利なやつです。

Vagrantを使っている多くの人が仮想マシンのディレクトリとローカルのディレクトリを共有していると思います。
そしてローカルのディレクトリ上のファイルをなんやかんややってブラウザで確認をする。
CSS(やJavaScript)を更新したのに何も変わらない。
たぶんここまでがセットです。

最初はキャッシュが問題なのかなーと思ったのですが、そうでもなさそうです。

原因はsendfileにあった

実はこれはキャッシュではなく「sendfile」というサーバーの機能が原因のようです。
この「sendfile」は何かと言うと、静的なファイルのやりとりは一度読み込んでいるファイルであれば再度読み込まずに内容を送るものです。
普段ならリクエスト数を減らすことができべんりなのですが、頻繁にファイルを更新する開発中にはまったくいらない機能です。
そこでこの「sendfile」を使わないようにオフってしまいましょう。

sendfileをオフにする

それでは有名所のWebサーバーでのsendfileを使わない設定の方法です。
それぞれ設定ファイルに記述する or コメントアウトを外すことで解決します。

Apache

EnableSendfile off

nginx

sendfile off;

簡単ですね。
そしてサーバーを再起動しましょう。

こうすればCSSの変更が即座に反映されるようになります。(たぶん)


Pocket