繁体   English   中英

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

Rails开发

unicorn_rails -c config/unicorn.rb -D -E production

轨道生产

Nginx,Unicorn和Rails的日志未显示任何错误。

耙线
[root @ mycentos my_app]#耙路

   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的设置不要求一个?Dunno。)在您的route.db中添加

  root 'static_pages#home'

进入并确保显示路径。 在/ static页面中创建一个具有html的“ Hello World”的home.html.erb。 使用您一直在使用的相同命令将+ +测试部署到dev + prod:

unicorn_rails -c config/unicorn.rb -D -E production

如果可以正常工作,那么您就知道您的部署可以正常工作;如果不能在生产环境中工作,则可以删除另一个组件...

拔下Node.js

在简单的“ Hello Page”世界应用程序中,您不需要node.js。 如果您100%确信它不会引起问题,请忽略此建议。

世界,您好,如果没有数据库和node.js,仍然无法正常工作吗? 查看生产参数,Gemfile等 。如果需要我将在此处添加详细信息。 虽然我希望问题不在环境/production.rb中,但是可能是。


似乎有人使用Rails exp。 在node.js上更好地回答这个问题,但是由于没有其他人在加强,所以我希望我的输入对您有所帮助,即使只是以另一种方式查看问题。

经过大量调查后,问题在于没有生产用的秘密钥匙。 所以我必须运行rake secret来生成它并将其粘贴到config/secrets.yml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM