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

时间:2015-10-01 08:41:21

标签: 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 -- : 
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

在公共目录中生成assets文件夹。但是当我访问我的应用程序的网址时,它仍然显示您要查找的网页。

1 个答案:

答案 0 :(得分:0)

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

,该应用程序运行正常
myapp.com/users

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