Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何建立一个完整的;“你好,世界”;rails 3.1处于生产模式的站点?_Ruby On Rails_Production_Mode - Fatal编程技术网

Ruby on rails 如何建立一个完整的;“你好,世界”;rails 3.1处于生产模式的站点?

Ruby 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的网站。中间目标是建立一个非常简单的网站。我使用的是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
浏览至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服务器。