我正在尝试在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”],这也不起作用。
任何建议将不胜感激。谢谢。
答案 0 :(得分:0)
您可能需要在机架级别设置此项。如果您使用的是Passenger,则可以设置RackBaseURI
指令。
答案 1 :(得分:0)
这里的问题相同。 作为部分解决方案,我使用
set :asset_env, "#{asset_env} RAILS_RELATIVE_URL_ROOT=/csc"
在Capistrano deploymment的deploy.rb中。这适用于资产预编译的所有其他方面,除了这个单一方面(.coffee.erb)似乎完全不受该设置的影响。