0

次のようなプロトコル相対 URL をサポートしないwkhtmltoimageユーティリティを使用しています。<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script>

それを次のように変換する必要があります: <script src="http://cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js"></script>Ruby で。これらのタイプの URL を見つけるための最も効率的な方法は何だろうかと思っています。これらの URL の正規表現を作成して先頭に追加する方法がわからないからhttp:です。

前もって感謝します。

4

2 に答える 2

0

そのためにperlを使用できます:

perl -pi -e 's/src="\/\//src="http:\/\//' *

上記のステートメントは、ディレクトリ内で見つかったすべてのパターンを置き換えます。

于 2014-06-12T09:12:40.270 に答える
0

ここで sを使用する必要はありませんRegexp。HTML には HTML パーサーを使用し、URI には URI パーサーを使用するだけです。

require 'nokogiri'
require 'uri'

doc = Nokogiri.HTML(<<-EOHTML)
  <script 
    src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.5/numeral.min.js">
  </script>
EOHTML

doc.xpath('//script[@src]').each do |script|
  uri = URI.parse(script['src'])  
  uri.scheme = 'http' if uri.scheme.nil?  
  script['src'] = uri.to_s
end
于 2014-06-12T11:53:57.553 に答える