【问题标题】:Deploying Rails on AWS elastic beanstalk - Static Asset routing not working在 AWS 弹性 beanstalk 上部署 Rails - 静态资产路由不起作用
【发布时间】: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) 未提供静态资产。

有人知道这些问题的解决方案吗?

提前谢谢你!

==========================编辑===================== ======

我正在使用 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


【解决方案1】:

尝试以下方法:

config/routes.rb

Rails.application.routes.draw do
  root 'home#index'
end

删除或注释掉'/'的所有定义(包括获取'/'、匹配'/'等)

app/controllers/home_controller.rb

class HomeController < ApplicationController

  def index
    render 'index'
  end

end

app/views/home/index.html.erb

<h1>HELLO WORLD.</h1>

并确保删除 public/index.html

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 2021-10-28
    • 2017-08-30
    • 2016-04-17
    • 2017-04-04
    • 2014-08-26
    • 2017-07-21
    • 1970-01-01
    • 2016-10-12
    相关资源
    最近更新 更多