【发布时间】:2014-08-29 22:08:23
【问题描述】:
我通过 Amazon 的 eb 工具在 AWS elastic beanstalk 上建立了我的 rails 应用程序。 在弹性 beantalk 上,我使用它的默认负载均衡器,并且正在运行 ubuntu 64bit 和 ruby 2.0。
我遇到了两个主要问题:
1) 根路由不工作。
-
在我的 config/routes.rb 中,我尝试了:
root '控制器#action
根 :to => 'controller#action'
根到:'controller#action'发现它们都没有工作。服务器给我一个错误说:
无效的路由名称,已在使用中:'root' (ArgumentError)
我猜测 Rail 的默认 root=>public/index.html 和我自己在 config/routes.rb 中的路由之间存在某种冲突?所以我创建了 public/index.html 并且根 url '/' 现在服务于 public/index.html。我想找到一种让它以“Rails”方式工作的方法,将根 url 路由到控制器#action。
2) 未提供静态资产。
-
在我的 layouts/application.html.erb 文件中,我有 Rails 默认值
真的%> 真的%>
-
但是,当我在生产环境中启动弹性 beanstalk 上的 Rails 应用程序时,我得到:
http://myurl.com/javascripts/application.js404(未找到)
http://myurl.com/stylesheets/application.css404(未找到) 有趣的是,公共/图像中的资产可以正确提供。
有人知道这些问题的解决方案吗?
提前谢谢你!
==========================编辑===================== ======
我正在使用 Amazon 64 位 Linux 和Passenger Standalone
【问题讨论】:
-
您能说出您正在使用的解决方案堆栈的确切名称吗?是“运行 Ruby 2.0 (Puma) 的 64 位 Amazon Linux 2014.03 v1.0.4”还是其他版本。你可以试试这个最新版本吗?
-
我已将其添加到问题中!
-
您能否尝试最新的独立乘客解决方案堆栈版本 - 目前为 v1.0.3。确切的解决方案堆栈名称是“64bit Amazon Linux 2014.03 v1.0.3 running Ruby 2.0 (Passenger Standalone)”?
-
是的,这就是我现在使用的,抱歉我不够具体!我的本地开发环境也是 Ruby 2.0
-
对于(1)你能试试这里的建议吗:stackoverflow.com/a/24222282/161628
标签: ruby-on-rails ruby amazon-web-services amazon-elastic-beanstalk