在生产中使用基本URL的coffeescript文件中使用url_helpers

时间:2012-07-06 20:56:07

标签: ruby-on-rails asset-pipeline ruby-on-rails-3.2 rails-routing

我正在尝试在coffescript文件中使用Rails url_helpers。我将.erb扩展名附加到文件名(profile.js.coffee.erb)并使用ERB来访问帮助程序,如下所示:

jQuery ->
  window.Intl.Models.Profile = Backbone.Model.extend
    url: '<%= Intl::Application.routes.url_helpers.profile_path %>'

这在开发中效果很好,它将返回/profile。在生产中,我使用的是/intl的URL根,所以我告诉资产预编译器在deploy.rb中考虑这个问题

set :asset_env, "#{asset_env} RAILS_RELATIVE_URL_ROOT='/intl'"

但是,这似乎不会影响url_helpers,因为它仍会返回/profile而不是/intl/profile

我尝试分别在production.rb和development.rb中设置ENV [“RAILS_RELATIVE_URL_ROOT”],这也不起作用。

任何建议将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

您可能需要在机架级别设置此项。如果您使用的是Passenger,则可以设置RackBaseURI指令。

答案 1 :(得分:0)

这里的问题相同。 作为部分解决方案,我使用

set :asset_env, "#{asset_env} RAILS_RELATIVE_URL_ROOT=/csc"
在Capistrano deploymment的deploy.rb中

。这适用于资产预编译的所有其他方面,除了这个单一方面(.coffee.erb)似乎完全不受该设置的影响。