转换成HTML的所有链接到绝对路径
问题描述:
我有一个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?或者一个通用的方式来做到这一点。
谢谢。
答
这是一个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>"
答
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") %>
你使用产生的link_to此HTML字符串? – 2014-09-06 01:54:58
只使用rails url帮手 – Mandeep 2014-09-06 06:39:15
[用绝对路径URL替换相对路径URL]可能的重复(https://stackoverflow.com/questions/15888491/replace-relative-path-urls-with-absolute-path-urls) – mb21 2018-02-21 15:49:16