如何从相对链接传递到绝对链接:
<a href="/foo/ba.pdf">A</a>
<a href="foo/ba.pdf">B</a>
<a href="http://google.com/foo/ba.pdf">A</a>
<a href="#hello">A</a>
应转换为
<a href="PREFIX/foo/ba.pdf">A</a>
<a href="PREFIX/foo/ba.pdf">B</a>
<a href="http://google.com/foo/ba.pdf">A</a>
<a href="#hello">A</a>
其中PREFIX
是字符串(用户定义)
答案 0 :(得分:0)
使用URI:
require 'uri'
URI.join('http://google.com/', 'foo')
#<URI::HTTP http://google.com/foo>
答案 1 :(得分:0)
首先得到文件:
<% doc = Nokogiri::HTML(foo)%>
其中foo是你想要的内容。
搜索没有方案且没有以'/'开头的链接。所以他们是相对的。使用此链接附加'/'+ PREPEND
<% for link in doc.search('a[href]').select { |l| URI(l['href']).scheme == nil and URI(l['href']).path.start_with?('/') == false }
link['href'] = '/' + PREPEND + '/' + link['href']
end
%>