2014-09-06 75 views
-1

我有一个HTML字符串,例如,转换成HTML的所有链接到绝对路径

<html> 
    <body> 
    <a href="/image/myimage.png"/> 
    </body> 
</html> 

如何都相对路径转换成绝对路径,这样的吗?

<html> 
    <body> 
    <a href="http://example.com/image/myimage.png"/> 
    </body> 
</html> 

我使用Ruby on Rails,任何合适的gem?或者一个通用的方式来做到这一点。

谢谢。

+0

你使用产生的link_to此HTML字符串? – 2014-09-06 01:54:58

+0

只使用rails url帮手 – Mandeep 2014-09-06 06:39:15

+0

[用绝对路径URL替换相对路径URL]可能的重复(https://stackoverflow.com/questions/15888491/replace-relative-path-urls-with-absolute-path-urls) – mb21 2018-02-21 15:49:16

回答

0

这是一个JS的功能我前一段时间,不是真的我的,不记得在那里我发现它(有它的一个片段,所以学分谁写的话),但它确实可以创造奇迹:

var absolutePath = function(href) { 
    var link = document.createElement("a"); 
    link.href = href; 
    return (link.protocol+"//"+link.host+link.pathname+link.search+link.hash); 
} 

编辑:找上面的代码片段的作者,发现一个Ruby版本供您:

[code = ruby] 
Class String 
    @@base = "http://example.com" 
    def to_link 
    "#{@@base}/folder/#{to_s}" 
    end 
    def to_js 
    "#{@@base}/#{to_s}" 
    end 
end 
[/code] 

然后把"<a href = #{'link.html'.to_link}>some link</a>"

Rails Forum

0

URL

你可能会寻找的_url帮手。

_path_url帮助者之间的区别是_url帮助者将加载绝对路径,而_path将相对于您当前的URL。这里是一个great resource

* _path是视图,因为ahrefs隐式链接到当前的URL。所以重复一遍又一遍会浪费字节。 但是,在控制器中,redirect_to需要* _url,因为 HTTP规范要求3xx重定向 中的位置:标头是完整的URL。

这意味着,从你的问题来看,你会是最适合changing any of your _path references to _url

<%= link_to "", image_url("myimage.png") %> 
相关问题