6

如何生成指向 javascript 文件 的绝对链接。

我认为应该有类似下面的东西(不幸的是,它似乎不可用):

javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'

代替:

javascript_path 'main' # -> '/javascripts/main.js'

我需要绝对 URL,因为该 javascript 文件将在书签中使用。
此外,我需要相同的 css 文件。

谢谢,
德米特里。

4

3 回答 3

6

javascript 和 css 文件的绝对 URL 现在可以通过 Asset Pipeline在 Rails 4 中的ActionView::Helpers::AssetUrlHelper模块中使用。在您的情况下,具体是javascript_url 及其别名 url_to_javascript以及样式表的相应方法。

结果与您在问题中提到的完全一样:

javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'

尽管这个问题是很久以前提出的,但希望它可以帮助人们在未来寻求相同问题的答案。

于 2015-03-31T19:29:22.230 回答
2

我写了这个小帮手来做到这一点:

def absolute_javascript_url(source)
  uri = URI.parse(root_url)
  uri.merge(javascript_path(source))
end

关键部分是URI.merge,它将自动正确地将相对 javascript_path 与 root_url 合并。

于 2010-09-18T08:01:51.740 回答
1

也许你可以简单地使用javascript_pathroot_url

例如:

root_url + javascript_path("main") 

root_url由您的根路由自动生成。

ActionController::Base.asset_host您还可以通过在环境的配置文件中进行设置来配置 Rails 帮助程序以使用特定的“基本路径” 。在文档中阅读更多内容。

于 2009-12-21T12:58:16.040 回答