WebページをVagrantを使ってローカル環境で確認している時に「Uncaught SyntaxError: Unexpected token ILLEGAL」というエラーがconsoleで表示され、javacriptが動かなくなることがあります。
この時のjavascriptをChrome Developer Toolsで見たときに、末尾になぞの空白(Unicode U+200B??)が存在しているのであれば、javascriptのキャッシュを疑ってみてください。
原因
Vagrantの「config.vm.synced_folder」を使って、javascriptのあるフォルダを共有フォルダに指定していると、ApacheがNFSとして認識してしまうために、Apacheがjavascriptをキャッシュしてしまうことに起因します。
解決方法
httpd.confを修正するか、recipeで修正済みのhttpd.confを用意します。
今回は直接Vagrantにsshで接続し、httpd.confを修正しちゃいます。
1.Vagrantにsshで接続する
vagrant ssh
2.Apacheの設定ファイルであるhttpd.confをviで開く
sudo vi /etc/httpd/conf/httpd.conf
3.httpd.confのEnableMMAP
とEnableSendfile
の設定がコメントアウトされているので、これをOFFに設定しなおせばOK
# EnableMMAP off
# ↓↓↓
# コメントアウトをはずす
EnableMMAP off
# EnableSendfile off
# ↓↓↓
# こっちも
EnableSendfile off