2014-09-06 107 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") %> 
相關問題