Phantomjsが正常に動作するようになりましたが、現在はnode.jsのphantomjs-nodeインターフェイスに関する問題が発生しています(https://github.com/sgentle/phantomjs-node参照)。Heroku上でPhantomjs +ノードを実行する際に問題が発生しました
私は、私は10〜15秒の遅延を見ているファントムを初期化しようとしています:
> phantom stdout: ReferenceError: Can't find variable: socket
phantom stdout: phantomjs://webpage.evaluate():1
phantomjs://webpage.evaluate():1
phantomjs://webpage.evaluate():1
あなたは以下の手順でまたはhttps://github.com/matellis/phantom-testで私のテストのアプリを引き下げることにより、問題を再現することができます
http://fathomless-ravine-5563.herokuapp.com deployed to Heroku
:あなたのアプリが来ているテスト、あなたのURLを教えてくれる最後の行の3番目のは、それは次のように
git init phantom-test
cd phantom-test
heroku apps:create
# create node app as per Heroku instructions here https://devcenter.heroku.com/articles/nodejs
# copy bin and lib folders from http://phantomjs.googlecode.com/files/phantomjs-1.6.1-linux-x86_64-dynamic.tar.bz2 into root of your new project
# if you don't do this step you'll get an error "phantom stderr: execvp(): No such file or directory"
git add .
git commit -m "init"
git push heroku
お読みください10
成功した場合は、Hello World!あなたのブラウザで。あなたのHerokuのアプリケーションの実行と同じフォルダから今
:heroku run node
ノードプロンプトでは、次のことを試してください。
phantom = require('phantom');
x = phantom.create();
は10〜15秒待ってから、エラーが表示されるはずです。この時点では何も動作しません。出力ファイルfoo.png
これは、必要があります。
x = phantom.create(function(ph){ph.createPage(function(page){ page.open('http://bbcnews.com', function(status){ page.render('foo.png', function(result) {ph.exit()}); }); }); });
Phantomjsを検証するためには、Herokuの上で正常に動作している、私のテストプロジェクト使用して次の操作を試してください。
>heroku run bash
Running `bash` attached to terminal... up, run.1
~ $ phantomjs test.js http://bbcnews.com foo.png
~ $ ls *.png
foo.png
を私はローカルでこれらの問題のいずれかを再現することはできませんが、人々がローカルでこの問題にぶつかったかもしれない他の問題が報告されています。私は運を持つなどのノード、ファントムのバージョンのバリエーションを試してみた
s.on('request', function(req) {
var evil;
evil = "function(){socket.emit('message', " + (JSON.stringify(JSON.stringify(req))) + " + '\\n');}";
return controlPage.evaluate(evil);
});
:
問題がshim.js
ライン1637に由来すると思われます。
また、DYLD変数を設定するカスタムビルドパックも試しました。http://github.com/tecnh/heroku-buildpack-nodejsを参照してください。
私が知りたいと思っている人は誰でもPhantom + Nodeを一緒に遊んでいる人に教えてください。これについては、Stackoverflowにいくつかの言及がありますが、誰も "私はそれを働かせました。
あなたはこの答えを見つけましたか?私はまた、herokuでphantomjsとnodejsをうまくプレイしようとしています:http://goo.gl/oIhPU –
あなたはHeroku用にコンパイルされたphantomjsを持っていますか? –
Herokuはphantom.jsアプリのためにこのビルドパックを推奨しているようです:https://github.com/stomita/heroku-buildpack-phantomjs - それはあなたの参照よりも最近更新されています。あなたはそれを試しましたか? – friism