Ruby on rails 如何建立一个完整的;“你好,世界”;rails 3.1处于生产模式的站点?
我正在努力在生产模式下建立一个基于rails的网站。中间目标是建立一个非常简单的网站。我使用的是Rails 3.1.0、rake 0.9.2.2和 Ruby 1.9.2 以下是我尝试过的,到目前为止没有成功的结果: 首先,确保未设置RAILS_ENVRuby on rails 如何建立一个完整的;“你好,世界”;rails 3.1处于生产模式的站点?,ruby-on-rails,production,mode,Ruby On Rails,Production,Mode,我正在努力在生产模式下建立一个基于rails的网站。中间目标是建立一个非常简单的网站。我使用的是Rails 3.1.0、rake 0.9.2.2和 Ruby 1.9.2 以下是我尝试过的,到目前为止没有成功的结果: 首先,确保未设置RAILS_ENV rails new test_project cd test_project rails generate scaffold User name:string email:string rake db:migrate rails s 浏览
rails new test_project
cd test_project
rails generate scaffold User name:string email:string
rake db:migrate
rails s
浏览至localhost:3000或localhost:3000/用户
事情看起来不错
现在,尝试将其设置为生产:
export RAILS_ENV=production
rake db:migrate
rake assets:precompile
rails s
浏览到localhost:3000
问题:路由错误;没有与[GET]“/”匹配的路由
压轨
在config/routes中,添加root:to=>“用户#索引”
rails s
现在可以浏览到localhost:3000和localhost:3000/用户
但是,rails会生成以下错误:
Started GET "/assets/application-00960e5186894b532975562d59176a6a.css" for 127.0.0.1 at 2011-11-26 23:09:44 -0800
ActionController::RoutingError (No route matches [GET] "/assets/application-00960e5186894b532975562d59176a6a.css"):
Started GET "/assets/application-ae30e133eabbb10d9464189d3fb71e25.js" for 127.0.0.1 at 2011-11-26 23:09:44 -0800
ActionController::RoutingError (No route matches [GET] "/assets/application-ae30e133eabbb10d9464189d3fb71e25.js"):
有人能解释一下如何修复上述简单的尝试,使Rails 3.1项目在“生产”模式下工作吗?路由错误,请转到routes.rb文件并添加
资源:用户
现在,当您从终端运行“rake routes”时,您将看到导航此模型所需的相关路由。基本问题是,在“生产”模式下运行应用程序的默认配置对部署做出了一些假设——主要是您使用的是另一个Web服务器(例如nginx、apache)用于服务静态资产。您将收到文件未找到错误,因为默认情况下Rails在生产模式下不提供静态资产
如果您试图使用WEBrick复制“生产”环境,则需要将其配置为服务于静态资产。只需在production.rb中翻转布尔值即可
环境/生产.rb
#禁用Rails的静态资产服务器(Apache或nginx已经这样做了)
config.service\u static\u assets=false
一旦您进行了更改并重新启动服务器,您将使用WEBrick为您预先编译的资产提供服务,这虽然效率低下,但肯定会让您了解生产中的情况。这是一个新的应用程序,还是从以前的版本升级而来的?不,这是一个完全“从头开始”的rails项目,只是为了探索设置Rails 3.1中的“生产”。这是一个非常简单的“hello world”测试用例。config/routes.rb文件中已经有了“resources:users”行。在“开发”模式下一切都很好,但当我尝试切换到“生产”模式时出现了问题。我真正关心的是如何将项目从“开发”到“生产”,使用rake资产:预编译等。非常感谢!这很有帮助。我的小测试场景使用rails s和Webrick(没有您指出的配置更改),但我也有一个apache/mysql设置。我一直认为Webrick是一种集成到rails中的“普通”web服务器。