2

レールからphantom.jsモジュールを実行しようとしています。これまでのところ、バイナリのインストールに成功しており、phantomjs のパスは正常に機能しているようです。

ただし、バックティックを使用して Rails アプリから実行しようとすると (たとえば、phantomjs rasterize.js http://google.com 1.jpg)、No such file or directory と表示されます。

その理由は、rasterize.js のパスが見つからないためだと思います。rasterize.js ファイルを #{Rails.root}、public フォルダー内、controller フォルダー内に配置しようとしましたが、何も機能しません。

どうすればこの問題を解決できますか?

====

更新:明確にするために、コントローラー内で機能するコードと機能しないコードを投稿しています。

def create
  'phantomjs'
end

<= 上記のコードではパス エラーが吐き出されず、ブラウザからリクエストを送信すると、phantomjs プロセス呼び出され、サーバー側でコンソールが開かれます。

def create
  'phantomjs rasterize.js'
end

<=これは機能せず、「そのようなファイルまたはディレクトリはありません」というエラーが吐き出されます。これが、Railsがrasterize.jsのパスを見つけることができないことに関係していると思う理由です。私は、rasterize.js を public フォルダー内、controllers フォルダー内、メイン ディレクトリ: #{Rails.root} 内に配置しようとしましたが、常に同じです。

4

2 に答える 2

0

興味深い...私はあらゆる種類の組み合わせを試してきましたが、最終的に機能するケースに遭遇しましたが、それは私が期待したものではありません:

%x("/usr/local/bin/phantomjs /Users/e/Dropbox/Projects/rails/screenshots/rasterize.js http://google.com app/assets/images/2709.jpg")

<= これは機能しません。

system("/usr/local/bin/phantomjs /Users/e/Dropbox/Projects/rails/screenshots/rasterize.js http://google.com app/assets/images/2709.jpg")

<=これは機能します。

戻り値を除いて、これらはすべて内部的に同じように機能すると思いましたか? 多分私は間違っていましたか?

于 2012-06-07T15:22:45.677 に答える