在我目前的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。我目前无法升级该版本,因为其他几个开发人员都参与了该项目。任何人都可以给我一个解决方案。
由于
答案 0 :(得分:1)
非常感谢那些试图帮助我解决这个问题的人。我安装了CentOS,一切都已修复并顺利运行。
这可能是我之前使用的Windows服务器2008的一些问题
非常感谢
答案 1 :(得分:0)
最佳做法是在Gemfile中指定依赖项。
的Gemfile:
...
gem 'popen4'
...
然后运行bundle install
为您的应用创建一组特定的宝石。
否则,您的应用依赖于您在计算机上本地安装的内容(我想通过gem install popen4
)。
此处您的生产机器上没有安装宝石POpen4 ......所以另一个快速(但不推荐)解决方案是使用gem install popen4
在您的生产机器上手动安装宝石。