在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帮助程序以使用特定的“基本路径”。 阅读文档中的更多内容 。