【问题标题】:routes.rb is working locally but not on herokuroutes.rb 在本地工作,但不在 heroku 上
【发布时间】:2012-02-10 13:02:59
【问题描述】:

重新表述我的问题以使其更清楚。

好的,我现在正在尝试在 heroku 上构建一个应用程序,但与此同时,我想将我的用户重定向到一个外部 url,例如:quickbrownfox.com

所以我要做的是修改根路由,这样任何尝试访问我的应用程序的人都会被重定向到外部站点。

我尝试通过在 routes.rb 中添加一个条目:

root :to => redirect('http://quickbrownfox.com')

这在本地运行良好,但是一旦我上传到 heroku(竹栈)。似乎没有使用 routes.rb 。它只是试图寻找我已删除的index.html

参考heroku日志,我会得到:

2012-02-10T03:42:10+00:00 app[web.1]: cache: [GET /] miss

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 heroku


    【解决方案1】:

    如果您想以 root 身份显示静态页面,您应该使用 High Voltage gem。这允许您将静态页面添加到您的网站,如下所示:

    • gem 'high_voltage' 添加到您的Gemfile
    • 将您的静态home.html.erb 页面放入/app/views/pages/
    • 使用root to: => 'high_voltage/pages#show', :id => 'home' 路由到您的静态页面

    不需要重定向。

    高压文档可以在https://github.com/thoughtbot/high_voltage找到。

    【讨论】:

    • 这可能会有所帮助。实际上,我想要做的是将任何进入另一个外部 url 的人重定向。我这样做了,所以下次我的 heroku 应用程序准备好时,我不必告诉他们我更改了 url。
    【解决方案2】:

    也许你还没有提交和推送你对 routes.rb 或 index.html 所做的更改

    否则,我建议您在 Heroku 中使用 Cedar 堆栈,因为 Cedar 更“自然”,因此可以为您以后在其他问题上节省大量时间

    【讨论】:

    • 我确实推动并提交了更改。我只是不太确定为什么当应用程序在 heroku 上时,它似乎去寻找 index.html 文件而不检查 routes.rb。
    • 这不会解决路由问题。 Cedar 与 Bamboo 相比的主要优势在于,在 Rails 3.1 中引入的资产管道确实有效。
    猜你喜欢
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2021-04-26
    • 2013-03-29
    • 2015-02-07
    • 2017-08-01
    • 2014-07-06
    • 2021-07-22
    相关资源
    最近更新 更多