JavaScript
vagrant

Vagrant上のjavascriptで「Uncaught SyntaxError: Unexpected token ILLEGAL」

More than 3 years have passed since last update.

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のEnableMMAPEnableSendfileの設定がコメントアウトされているので、これをOFFに設定しなおせばOK

httpd.conf
#EnableMMAP off
#↓↓↓
#コメントアウトをはずす
EnableMMAP off

#EnableSendfile off
#↓↓↓
#こっちも
EnableSendfile off