我通过亚马逊的eb工具将我的rails应用程序放在AWS弹性beanstalk上。 在弹性beanstalk上,我正在使用它的默认负载均衡器,并且正在使用ruby 2.0运行ubuntu 64bit。
我遇到两个主要问题:
1)根路由不起作用。
在我的config / routes.rb中,我尝试过:
root'controller#action
root:to => “控制器#行动”
root to:'controller#action'
发现他们都没有工作。服务器给我一个错误说:
无效的路线名称,已在使用中:'root'(ArgumentError)
我猜想Rail的默认root => public / index.html与我自己在config / routes.rb中的路由之间存在某种冲突?所以我创建了public / index.html,根url'/'现在提供public / index.html。我想弄清楚一种方法,使它以“Rails”的方式工作,根网址路由到控制器#action。
2)没有提供静态资产。
在我的layouts / application.html.erb文件中,我有Rails默认
真%GT; 真%GT;
但是,当我在生产环境中的弹性beanstalk上启动Rails应用程序时,我得到:
http://myurl.com/javascripts/application.js 404(未找到)
http://myurl.com/stylesheets/application.css 404(未找到)
有趣的是,公共/图片中的资产得到了正确的服务。
有谁知道这些问题的解决方案?
提前谢谢你!
=========================编辑===================== ==
我正在使用带有乘客独立的Amazon 64位Linux
答案 0 :(得分:0)
尝试以下方法:
<强>配置/ routes.rb中强>
Rails.application.routes.draw do
root 'home#index'
end
删除或注释掉&#39; /&#39;的所有定义(包括获取&#39; /&#39;,匹配&#39; /&#39;等)
应用/控制器/ home_controller.rb 强>
class HomeController < ApplicationController
def index
render 'index'
end
end
应用/视图/家/ index.html.erb 强>
<h1>HELLO WORLD.</h1>
并确保删除 public / index.html 。