3

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

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

今天我注意到以下问题:我的应用程序链接基于 “http://myapp.herokuapp.com”域(因此我得到“http://myapp.herokuapp.com/page”URL),即使我访问使用我的域名的应用程序(然后我希望获得“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 事物时,这曾经按预期工作。不知道这会不会有什么影响。

4

2 回答 2

2

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

有关缓存如何在 Rails 中工作的更多信息,请参阅此页面。

于 2012-08-11T23:45:55.417 回答
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 显然它会影响邮件范围之外的默认 url 选项

于 2015-05-04T13:30:44.667 回答