7

私の現在の Ruby on Rails プロジェクトでは、開発に webrick (デフォルト) サーバーを使用しています。アプリケーションをテストするための別のサーバーがあり、環境を製品に設定したいと考えています。次の行を使用して、サーバーを運用モードで実行しました。

rails s -e production

問題は、開発モードでは完全に機能しますが、サーバーモードでは次のエラーが発生することです。

Started GET "/" for 172.20.7.94 at Thu Jun 07 10:35:45 +0530 2012
  Processing by FrontendController#dashboard as HTML
Rendered frontend/dashboard.html.erb within layouts/frontend (3.0ms)
Completed 200 OK in 50ms (Views: 22.0ms | ActiveRecord: 0.0ms)


Started GET "/assets/frontend-datauri.css" for 172.20.7.94 at Thu Jun 07 10:35:4
6 +0530 2012
  Processing by Jammit::Controller#package as HTML
  Parameters: {"extension"=>"css", "package"=>"frontend-datauri"}
Completed 500 Internal Server Error in 190ms

NameError (uninitialized constant POpen4::Open4):


Started GET "/assets/frontend.js" for 172.20.7.94 at Thu Jun 07 10:35:46 +0530 2
012
  Processing by Jammit::Controller#package as
  Parameters: {"extension"=>"js", "package"=>"frontend"}
Completed 500 Internal Server Error in 105ms

NameError (uninitialized constant POpen4::Open4):

私は Jammit と POpen4 を使用しており、レールのバージョンは 3.0.9 です。Ruby バージョン 1.8.7。他の開発者がプロ​​ジェクトに関与しているため、現在バージョンをアップグレードできません。誰でも私にこれに対する解決策を教えてもらえますか。

ありがとう

4

2 に答える 2

1

この問題に関して私を助けようとしたすべての人に感謝します。CentOS をインストールしましたが、すべてが修正され、スムーズに動作しています。

これは、以前使用していた Windows Server 2008 の問題かもしれません。

どうもありがとう

于 2012-08-07T03:56:06.707 に答える
0

ベストプラクティスは、Gemfileで依存関係を指定することです。

Gemfile:

...
gem 'popen4'
...

次に実行bundle installして、アプリ用の特定のgemバンドルを作成します。

それ以外の場合、アプリはマシンにローカルにインストールしたものに依存します(私は経由すると思いますgem install popen4)。

ここでは、本番マシンにgem POpen4がインストールされていません...したがって、他の簡単な(ただし推奨されない)解決策は、を使用して本番マシンにgemを手動でインストールすることgem install popen4です。

于 2012-06-07T07:27:35.990 に答える