在rails中生成javascript的完整URL(类似于javascript_path,但是url)

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

我假设应该有类似下面的那个(遗憾的是似乎没有):

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

代替:

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

我需要绝对URL,因为该javascript文件将用于书签。
另外我需要相同的css文件。

谢谢,
德米特里。

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

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

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

虽然很久以前就提出过这个问题,但希望它能帮助人们在未来寻求对同一问题的回答。

我写过这个小助手来做这件事:

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

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

也许你可以简单地使用javascript_path结合root_url

例如:

 root_url + javascript_path("main") 

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

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