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

Mat*_*udy 6 ruby-on-rails-3 sprockets asset-pipeline

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

它的工作原理如下;

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

css文件被添加到dom via中bookmarklet.js,因此需要知道它在哪里.

我的代码如下;

// assets/javascripts/bookmarklet.js.erb

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

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

var config = {
  stylesheetUrl: '/assets/bookmarklet.css'
}
Run Code Online (Sandbox Code Playgroud)

我需要asset_path返回一个完整的URL.但是asset_url不存在,我找不到一个选项asset_path,它将在当前域之前添加.

有解决方案吗

Thi*_*ilo 8

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

# development.rb
config.action_controller.asset_host = "http://localhost:3000"
Run Code Online (Sandbox Code Playgroud)