很难判断您的意思是您有 HTML 模板,例如 HAML 或 ERB,还是真正的 HTML 文件。如果您尝试操作 HTML 文件,您应该使用 Nokogiri 来解析和更改src
参数:
require 'nokogiri'
require 'uri'
html = '<html><body><img src="/path/to/image1.jpg"><img src="/path/to/image2.jpg"></body></html>'
doc = Nokogiri.HTML(html)
doc.search('img[src]').each do |img|
img['src'] = URI.join('http://localhost:3000', img['src']).to_s
end
puts doc.to_html
哪个输出:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<img src="http://localhost:3000/path/to/image1.jpg"><img src="http://localhost:3000/path/to/image2.jpg">
</body></html>
您可以通过src
各种方式对参数进行操作,但使用 URI 的优势在于它知道 URL 需要遵循的各种曲折。使用或文本操作重写参数gsub
需要您注意所有这些,并且可能会出现意想不到的编码问题。