我刚刚将我的一个应用程序部署到了heroku。这个应用程序使用:
我今天注意到以下问题:我的应用程序链接基于“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之前,这曾经如预期的那样工作。不知道这是否会产生任何影响。
答案 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