gpt4 book ai didi

ruby-on-rails - 如何在生产模式下使用 Rails 3.1 设置一个完整的 "hello world"站点?

转载 作者:行者123 更新时间:2023-12-01 08:34:20 25 4
gpt4 key购买 nike

我正在为在生产模式下建立一个基于 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/users

一切正常。

现在,尝试将其设置为生产:

export RAILS_ENV=production

rake db:migrate

rake assets:precompile

rails s

浏览到 localhost:3000

问题:路由错误;没有路由匹配 [GET] "/"

杀死 rails

在 config/routes 中,添加 root :to => 'users#index'

rails s

现在可以浏览到 localhost:3000 和 localhost:3000/users

但是,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 项目在“生产”模式下工作的简单尝试?

最佳答案

根本问题在于,在“生产”模式下运行应用程序的默认配置对部署做出了一些假设——主要是您正在使用另一个网络服务器(例如 nginx、apache)来为静态 Assets 提供服务。您收到文件未找到错误,因为默认情况下 Rails 不会在生产模式下提供静态 Assets

如果您尝试使用 WEBrick 复制“生产”环境,则需要将其配置为提供静态 Assets 。您可以简单地翻转 production.rb 中的 bool 值

环境/production.rb # 禁用 Rails 的静态 Assets 服务器(Apache 或 nginx 已经这样做了) config.serve_static_assets = false

一旦您做出更改并重新启动服务器,您将提供您使用 WEBrick 预编译的 Assets ,虽然效率低下,但肯定会让您了解它在生产中的情况。

关于ruby-on-rails - 如何在生产模式下使用 Rails 3.1 设置一个完整的 "hello world"站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com