なぜ使いたいか
AngularJSなどフロント側のrouteで運用していると、renderされたviewをSEOなどのボットに返したい!などPhantomJSの出番がやってきます。PhantomJSをHerokuにもサクッと入れる方法を紹介します。
どうやるか
PhantomJSのbuildpackを使えばいいんですが、Node.jsやRubyなども使いたいと思うので、複数のbuildpackを扱えるheroku/heroku-buildpack-multiを使います。
herokuのconfigにbuildpack使うよって登録します。
heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git
どのbuildpackを使うかを.buildpacks
で指定します。
- Node.jsの場合
https://github.com/heroku/heroku-buildpack-nodejs.git
https://github.com/stomita/heroku-buildpack-phantomjs.git
- Rubyの場合
https://github.com/heroku/heroku-buildpack-ruby.git
https://github.com/stomita/heroku-buildpack-phantomjs.git
Node.jsの時の補足
gruntなどでbuildしている場合は.buildpacks
もpushされるようにbuildに含めてあげましょう。
またbuildpack-nodejsを使う使う場合はpackage.jsonで指定したnode.jsのversionを合わせてあげましょう。
"engines": {
"node": "0.10.x",
"npm": "2.x"
},
このへんはbuildpack-nodejsのREAD.MEに書いてあります。
自分はここのversionが違ってheroku push
の以下のタイミングで止まってしまいました。
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-nodejs.git
以上、SEOやOGPにも対応した素敵なアプリケーションを作ってください。