2014-09-06 8 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, любой подходящий камень? Или общий способ сделать это.

Спасибо.

+0

Вы генерируя этот HTML строку с помощью link_to? –

+0

просто использовать rails url helper – Mandeep

+0

Возможный дубликат [заменить относительные URL-адреса пути с абсолютными URL-адресами пути] (https://stackoverflow.com/questions/15888491/replace-relative-path-urls-with-absolute-path-urls) – mb21

ответ

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); 
} 

EDIT: поиск автора выше фрагмент кода, нашел версию 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. Так что это была бы пустая трата байтов, чтобы повторять ее снова и снова. В контроллере, однако, * _url необходимо для redirect_to, поскольку спецификация HTTP указывает, что заголовок Location: в перенаправлении 3xx является полным URL-адресом.

Это означает, что, судя по вашему вопросу, что вы будете лучше всего подходит для changing any of your _path references to _url:

<%= link_to "", image_url("myimage.png") %>