Rails .js.erb文件中的完整资产URL

时间:2012-04-17 06:53:46

标签: ruby-on-rails-3 asset-pipeline sprockets

我有一个可以在任何网站上加载的书签。

它的工作原理如下;

  • 加载http://my.example.com/assets/bookmarklet.js
  • 包括http://my.example.com/assets/bookmarklet.css

css文件通过bookmarklet.js添加到dom中,因此需要知道这是什么。

我的代码如下;

// assets/javascripts/bookmarklet.js.erb

var config = {
  stylesheetUrl: '<%= asset_path("bookmarklet.css", :only_path => false) %>'
}

但无论我尝试什么,这都会呈现为

var config = {
  stylesheetUrl: '/assets/bookmarklet.css'
}

我需要asset_path才能返回完整的网址。 但是asset_url不存在,我找不到asset_path的选项,它会在当前域之前添加。

任何解决方案?

1 个答案:

答案 0 :(得分:8)

您需要为每个环境设置显式资产主机。例如:

# development.rb
config.action_controller.asset_host = "http://localhost:3000"