7

root ユーザーから node.js をコンパイルしてインストールすることで、node.js をインストールしました。私はおそらくここがハングアップしていると思います。Rails アプリを実行しているユーザーから、node.js を確認しました。

$ which node
/usr/local/bin/node

Rails アプリ (Rails 3.2.9) を起動すると、「申し訳ありませんが、何か問題が発生しました」という一般的に役に立たないメッセージが表示されます。プロダクション エラー ログを確認すると、Javascript ランタイムが見つからないことがわかりました。明らかにインストールされているため、混乱します。そこで、Node javascript ランタイムを強制することにしました。config/boot.rb を編集して、以下を含めました。

ENV['EXECJS_RUNTIME'] = 'Node'

制作ログを見ながら、アプリを再度チェックしました。今回はエラーになりました

ActionView::Template::Error (Node.js (V8) runtime is not available on this system

まだ混乱しています。execjs gem に移動し、ランタイム コマンドを正確なインストール パスに変更しました。

Node = ExternalRuntime.new(
  :name        => "Node.js (V8)",
  :command     => "/usr/local/bin/node",
  :runner_path => ExecJS.root + "/support/node_runner.js",
  :encoding    => 'UTF-8'
)

それでも同じエラーが発生します。ノードはインストールされ、ユーザーがアクセスできますが、gem/rails はそれを使用できないようです。サーバーはCentOS 6.3を実行しています。エラーがスローされる特定の JavaScript ファイルは、jquery.nivo.slider.pack.js です。nivoからダウンロードした後、編集していません。

4

3 に答える 3

1

centos 6.3システムにソースを使用してnodejsをインストールする際に同様の問題が発生しました。正常にインストールされましたが、インストール先 (nodejs) への PATH を明示的に設定するまで、ror アプリ資産のコンパイルに失敗し続けます。

[root]# make install
...
インストール /usr/local/lib/node_modules/npm/html/doc/folders.html
シンボリックリンク ../lib/node_modules/npm/bin/npm-cli.js -> /usr/ local/bin/npm
/usr/local/bin/npm のシバンを /usr/local/bin/node に更新

[root]# export PATH=/usr/local/bin:$PATH

今では動作します。それが役立つことを願っています!

于 2013-03-03T08:20:39.987 に答える
0

これが役立つかどうかはわかりませんが、ノードがそこにある $PATH を確認してください。また、ノードを使用する場合は、rvm を使用する必要があります。ノードのインストールが正しく行われたことを確認してください。

于 2013-01-06T23:18:51.167 に答える