在webrick服务器上的生产模式下运行rails

时间:2012-06-07 06:31:18

标签: ruby-on-rails ruby ruby-on-rails-3

在我目前的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,我的rails版本是:3.0.9。 Ruby版本1.8.7。我目前无法升级该版本,因为其他几个开发人员都参与了该项目。任何人都可以给我一个解决方案。

由于

2 个答案:

答案 0 :(得分:1)

非常感谢那些试图帮助我解决这个问题的人。我安装了CentOS,一切都已修复并顺利运行。

这可能是我之前使用的Windows服务器2008的一些问题

非常感谢

答案 1 :(得分:0)

最佳做法是在Gemfile中指定依赖项。

的Gemfile:

...
gem 'popen4'
...

然后运行bundle install为您的应用创建一组特定的宝石。

否则,您的应用依赖于您在计算机上本地安装的内容(我想通过gem install popen4)。

此处您的生产机器上没有安装宝石POpen4 ......所以另一个快速(但不推荐)解决方案是使用gem install popen4在您的生产机器上手动安装宝石。