Rails 3:使用myapp.herokuapp.com作为URL构建基础的Heroku应用程序

时间:2012-08-11 18:30:27

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

我刚刚将我的一个应用程序部署到了heroku。这个应用程序使用:

  • 默认“myapp.herokuapp.com”地址,
  • 我配置了一个域名,以便通过“www.myapp.com”来访问该应用。

我今天注意到以下问题:我的应用程序链接基于“http://myapp.herokuapp.com”域(因此我得到“http:// myapp。 herokuapp.com/page“网址)即使我使用我的域名访问应用程序(我希望得到”www.myapp.com/page“网址)。

我尝试编辑我的production.rb并设置default_url_options:

# Base domain for url generation 
config.action_controller.default_url_options = { :host => "www.myapp.com" }

但它并没有改变一件事。还试图在application.rb中更改它,以防万一,但也没有任何反应。

有任何线索吗? 非常感谢你的帮助!

编辑:在我将数据库迁移到新的Heroku postgres之前,这曾经如预期的那样工作。不知道这是否会产生任何影响。

2 个答案:

答案 0 :(得分:2)

如果您正在为网址使用_path方法,则会生成相对路径,该路径始终基于您访问的网址。如果您正在使用控制器/片段缓存,则应该在视图中使用_url。如果你的所有页面都有一些控制器逻辑,你可能还想考虑在你的production.rb中将config.action_controller.perform_caching设置为false。

有关缓存如何在缓存中工作的详细信息,请参阅this page

答案 1 :(得分:0)

我有类似的问题。它是由以下代码行引起的,这些代码指向heroku.com并被重定向到herokuapp.com

  config.action_mailer.default_url_options = { :host => 'my-staging-domain.heroku.com' }

我之所以提到它是因为它是 action_mailer .default_url_options,但如果您没有明确设置action_controller,它显然会影响邮件范围之外的默认网址选项.default_url_options