Ruby on rails Rails 4.2.3应用程序不在生产环境中工作,但在开发环境中工作

Ruby on rails Rails 4.2.3应用程序不在生产环境中工作,但在开发环境中工作,ruby-on-rails,ruby,nginx,Ruby On Rails,Ruby,Nginx,我在AWS实例上部署了我的rails应用程序,如果我在nginx的.conf文件中将环境更改为开发而不是生产,那么它可以正常工作 以下是production.log内容的输出 I, [2015-10-01T08:22:36.180713 #3376] INFO -- : Started GET "/" for 123.252.135.162 at 2015-10-01 08:22:36 +0000 F, [2015-10-01T08:22:36.201807 #3376] FATAL -- :

我在AWS实例上部署了我的rails应用程序,如果我在nginx的
.conf
文件中将环境更改为开发而不是生产,那么它可以正常工作

以下是
production.log
内容的输出

I, [2015-10-01T08:22:36.180713 #3376]  INFO -- : Started GET "/" for 123.252.135.162 at 2015-10-01 08:22:36 +0000
F, [2015-10-01T08:22:36.201807 #3376] FATAL -- : 
ActionController::RoutingError (No route matches [GET] "/"):
以下是
production.rb
文件的内容

# config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
config.serve_static_files = true

# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass

# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = true

# Asset digests allow you to set far-future HTTP expiration dates on all assets,
# yet still be able to expire them through the digest params.
config.assets.digest = true
我试着跑步

RAILS_ENV=production bundle exec rake assets:precompile

它在公共目录中生成了资产文件夹。但当我访问我的应用程序的url时,它仍然显示你正在查找的页面不存在。

我找到了解决方案。实际上,如果我访问其他资源,比如

myapp.com/users

但是,当我访问
myapp.com
时,它显示您正在查找的页面不存在。这是因为rails默认服务器在开发环境中提供rails默认页面,但当我尝试在生产环境中运行相同的页面时,nginx不提供rails的默认页面。

生产环境中是否存在您的
routes.rb
文件?可能值得运行rake路由。我确实运行过rake路由。如果我将环境更改为conf文件中的development,那么routes.rb文件已经存在,并且路由工作正常。因此,与路由相关的问题是没有的。我猜在apache/nginx配置中的rails环境设置是如何设置的,是否设置为生产?如果是在生产环境中,您需要重新启动rails应用程序,以使更改生效,而不像在开发环境中那样。我在nginx.conf文件中将环境更改为生产环境。我还重新启动了服务器以应用更改,但仍然无法工作。