追記
去年の10月にAJAX Crawling (Deprecated)はご覧の通りdeprecatedになっており、meteorのspiderableパッケージは今となっては特に有効ではないということのようです。
Meteorアプリを検索エンジンのボットに読み取ってもらうにはspiderableパッケージを使います。
spiderableパッケージはPhantomJSを起動してボットが読み取れる様アプリがレンダリングした結果のHTMLをボットに提供します。
ところが、いつ頃からかmeteor.comにデプロイしたアプリでspiderableのレンダリングがうまくいかなくなりました。
不思議に思いながら放置していたのですが、今回調査したところ、
- どうやらmeteor.comのPhantomJSはバージョン1の模様
- PhantomJS v1はFunction.prototype.bindをサポートしてない
- Meteorはproduction build(minificationなど)する時に.bindを使っている部分がある
- なのでlocalや--debugの時は動いてもproductionで動かなくなる
ということが起こっていました。
問題ないアプリもあるので、使っているパッケージに依存しているようです。
.bindのpolyfillを入れれば直るはずということで、es5-shimパッケージを追加したところ、直りました。
es5-shimは今ではmeteor createでデフォルトで追加されるパッケージのようです。
ずいぶん前から作り続けているアプリだったので今回のような問題が起こりました。
それにしても、meteor.comのPhantomJS、バージョンアップした方がいいんじゃないかな?