Rails 应用程序在开发中有效但在生产中为空
Rails application works in development but is empty in production
我的 Rails 4 应用程序在开发模式下运行,但在生产模式下我只看到一个空白页面。
在 CentOS 7 VPS 中使用 Nginx 的 运行 Unicorn。
有什么提示吗?
unicorn_rails -c config/unicorn.rb -D
unicorn_rails -c config/unicorn.rb -D -E production
Nginx、Unicorn 和 Rails 的日志没有显示任何错误。
Rake routes
[root@mycentos my_app]# rake routes
Prefix Verb URI Pattern Controller#Action
blogs GET /blogs(.:format) blogs#index
POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
PATCH /blogs/:id(.:format) blogs#update
PUT /blogs/:id(.:format) blogs#update
DELETE /blogs/:id(.:format) blogs#destroy
在开发中,我可以正常访问任何路由,即使在路由不存在时它也会向我显示错误消息。但在生产中,始终是一片空白。
我不是很大胆地切换到这里的答案区域,但是是时候了。我知道 node.js 可用于在 Rails 上创建单页应用程序。这是我想尝试但还没有完成的事情。
在进入隔离和征服场景之前,您是否查看了您的生产日志。它可能会被错误堆积起来。他们告诉你什么了吗?
我在不完全了解问题的复杂性的情况下处理这个问题。而且,我不知道你已经尝试过什么。但是,我会尝试通过删除组件和复杂性来隔离问题。我建议在根目录下创建一个非常简单的 "Hello world" 页面。而已。如果我们可以解决这个问题并部署一些东西,那么您就可以取得进展。
获得 "Hello world!" 页面将证明您的 MVC 代码库设置和部署正在运行。然后您将数据库作为生产中的变量隔离出来。
世界,您好!简单测试 - 我还没有看到不需要root_url 的Rails 应用程序。 (也许 node.js 安装程序不需要一个?不知道。)在你的 routes.db 添加
root 'static_pages#home'
搜索并确保显示路径。在 /static 页面中创建一个 home.html.erb,其中 html for "Hello World." Deploy + test to dev + prod using the same command you've been using:
unicorn_rails -c config/unicorn.rb -D -E production
如果工作正常,那么您知道您的部署工作正常,如果在生产环境中不工作,则删除另一个组件...
拔掉插头Node.js
在您简单的 "Hello Page" 世界应用程序中,您不需要 node.js。如果您 100% 确信不会引入问题,请忽略此建议。
您好,没有数据库和 node.js 仍然无法工作?查看生产参数,Gemfile等
如果需要,我会在此处添加详细信息。虽然我希望问题不在 environments/production.rb 中......但它可能是。
看起来像是 Rails exp 的人。在 node.js 上回答这个问题会更好,但由于没有其他人加紧努力,我希望我的意见能有所帮助,如果只是以另一种方式看待问题的话。
查了很多,问题是没有生产秘钥。所以我必须生成它 运行 rake secret
并将其粘贴到 config/secrets.yml
.
我的 Rails 4 应用程序在开发模式下运行,但在生产模式下我只看到一个空白页面。
在 CentOS 7 VPS 中使用 Nginx 的 运行 Unicorn。
有什么提示吗?
unicorn_rails -c config/unicorn.rb -D
unicorn_rails -c config/unicorn.rb -D -E production
Nginx、Unicorn 和 Rails 的日志没有显示任何错误。
Rake routes
[root@mycentos my_app]# rake routes
Prefix Verb URI Pattern Controller#Action
blogs GET /blogs(.:format) blogs#index
POST /blogs(.:format) blogs#create
new_blog GET /blogs/new(.:format) blogs#new
edit_blog GET /blogs/:id/edit(.:format) blogs#edit
blog GET /blogs/:id(.:format) blogs#show
PATCH /blogs/:id(.:format) blogs#update
PUT /blogs/:id(.:format) blogs#update
DELETE /blogs/:id(.:format) blogs#destroy
在开发中,我可以正常访问任何路由,即使在路由不存在时它也会向我显示错误消息。但在生产中,始终是一片空白。
我不是很大胆地切换到这里的答案区域,但是是时候了。我知道 node.js 可用于在 Rails 上创建单页应用程序。这是我想尝试但还没有完成的事情。
在进入隔离和征服场景之前,您是否查看了您的生产日志。它可能会被错误堆积起来。他们告诉你什么了吗?
我在不完全了解问题的复杂性的情况下处理这个问题。而且,我不知道你已经尝试过什么。但是,我会尝试通过删除组件和复杂性来隔离问题。我建议在根目录下创建一个非常简单的 "Hello world" 页面。而已。如果我们可以解决这个问题并部署一些东西,那么您就可以取得进展。
获得 "Hello world!" 页面将证明您的 MVC 代码库设置和部署正在运行。然后您将数据库作为生产中的变量隔离出来。
世界,您好!简单测试 - 我还没有看到不需要root_url 的Rails 应用程序。 (也许 node.js 安装程序不需要一个?不知道。)在你的 routes.db 添加
root 'static_pages#home'
搜索并确保显示路径。在 /static 页面中创建一个 home.html.erb,其中 html for "Hello World." Deploy + test to dev + prod using the same command you've been using:
unicorn_rails -c config/unicorn.rb -D -E production
如果工作正常,那么您知道您的部署工作正常,如果在生产环境中不工作,则删除另一个组件...
拔掉插头Node.js
在您简单的 "Hello Page" 世界应用程序中,您不需要 node.js。如果您 100% 确信不会引入问题,请忽略此建议。
您好,没有数据库和 node.js 仍然无法工作?查看生产参数,Gemfile等 如果需要,我会在此处添加详细信息。虽然我希望问题不在 environments/production.rb 中......但它可能是。
看起来像是 Rails exp 的人。在 node.js 上回答这个问题会更好,但由于没有其他人加紧努力,我希望我的意见能有所帮助,如果只是以另一种方式看待问题的话。
查了很多,问题是没有生产秘钥。所以我必须生成它 运行 rake secret
并将其粘贴到 config/secrets.yml
.