VirtualBox + Vagrantなローカル環境で開発をしてて、CSSファイルに変更があったので差し替えたのに反映されないという現象が発生した。CSSファイルは別環境で確認できていたのでファイル自体に問題なさそうで、ブラウザのキャッシュをクリアしても変わらなかった。ブラウザのデベロッパーツールで見てみると、CSSファイルが途中までしか読み込まれていなかった。

調べてみるとNginxの設定でsendfileというのがあり、それが有効だとカーネルでキャッシュされたデータを送信するということで、これが有効になっていたので無効に設定することでCSSファイルの変更内容が反映された。

# nginx.conf
sendfile off;

ちなみにApacheにも同様の設定があった。

# httpd.conf
EnableSendfile off