Apache
vagrant

Vagrantで同期フォルダ中の静的ファイルの更新がブラウザアクセスに反映されない

More than 3 years have passed since last update.

現象

「ローカルで開発して、その変更をVagrantと同期させ、Vagrant側でapacheを設定してブラウザ確認」という流れの開発を行っている際に、同期が完了(Vagrant側のファイルも変わっている)しているにもかかわらず、ブラウザでアクセスした際にその変更が反映されない。ブラウザキャッシュも削除済み。
直接Vagrantの該当ファイルを書き換えるとようやく反映される。

解決方法

apacheの設定ファイルのEnableSendfileという項目(デフォルトはON)をOFFにする。

今回は、VagrantのDocumentRoot(/var/www/html)以下を、ローカルの開発ディレクトリと共有させていたので、以下のように変更。

  <Directory /var/www/html>
      EnableSendfile off 
   </Directory>

EnableSendfileの詳細な説明は以下リンクで確認できます。

http://httpd.apache.org/docs/2.2/mod/core.html#enablesendfile