[英]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的日志未显示任何错误。
耙线
[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.