【发布时间】:2016-08-12 11:01:39
【问题描述】:
在关注此tutorial 之后,我尝试能够在 ec2 Ubuntu 实例上设置 rails 应用程序,运行 nginx Web 服务器和 puma 应用服务器,使用 capistrano 3 部署。但是,我的资产都没有出现,我遇到了 Devise gem 的基本功能的路由错误,例如注销。 chrome 开发工具控制台显示已编译的 application.css 和 application.js 文件的 404 错误。
我认为资产在那里,因为如果我 ssh 进入实例并转到我的应用所在的文件夹,我可以在 public/assets 下看到一堆文件。另外,如果我检查 capistrano 日志,我可以找到 bundle exec rake assets:precompile 行,并且状态为成功。我尝试过进入 production.rb 文件并将config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 更改为config.serve_static_files = true
但仍然没有资产。我认为最大的怀疑是存在某种路由错误,因为我不太了解 Web 服务器、应用程序服务器和 aws 实例如何相互交互。谁能指出我调试这个的正确方向?如果您需要查看特定的配置文件,请在下方评论。
【问题讨论】:
-
您是否特别需要使用 Capistrano 进行部署?对于 AWS 上的 Rails 应用程序,使用 ElasticBeanstalk 部署极大地简化了事情。
-
我喜欢 Capistrano 的工作流程,也喜欢使用 Capistrano 自定义部署任务相对简单的事实。另外,我只想了解如何配置服务器,而不是总是依赖平台
-
很公平。使用 ElasticBeanstalk,您还可以自定义部署任务,并且可以根据需要配置容器。
标签: ruby-on-rails nginx amazon-ec2 capistrano puma