我在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文件夹。但是当我访问我的应用程序的网址时,它仍然显示您要查找的网页。
答案 0 :(得分:0)
我找到了解决方案。实际上,如果我访问其他资源,如
,该应用程序运行正常myapp.com/users
但是当我访问myapp.com
时,它显示您正在寻找的页面不存在。这是因为rails默认服务器在开发环境中提供rails默认页面,但是当我尝试在生产环境中运行相同时,nginx不提供rails的默认页面。