Herokuで何か(Node.jsとか)とPhantomJSをつかう方法

  • 21
    Like
  • 2
    Comment
More than 1 year has passed since last update.

なぜ使いたいか

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の場合
.buildpacks
https://github.com/heroku/heroku-buildpack-nodejs.git  
https://github.com/stomita/heroku-buildpack-phantomjs.git
  • Rubyの場合
.buildpacks
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を合わせてあげましょう。

package.json
"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にも対応した素敵なアプリケーションを作ってください。