加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解决ruby内核参考离线版js文件的引用问题

发布时间:2020-12-17 04:06:24 所属栏目:百科 来源:网络整理
导读:官方的离线版默认是放在根目录的,所以js引用都是这种形式: script src=" / js/extra.js"/script 注意红色的反斜线,这样如果不是放在根目录,那么就会出现js引用的错误。 废话少说,用一段ruby代码即可解决: files = `ag 'src="/js' -l`.split("n")files

官方的离线版默认是放在根目录的,所以js引用都是这种形式:

<script src="/js/extra.js"></script>

注意红色的反斜线,这样如果不是放在根目录,那么就会出现js引用的错误。

废话少说,用一段ruby代码即可解决:

files = `ag 'src="/js' -l`.split("n")
files.each do |f|
    s = open(f).read
    if f.scan(///).count == 0
        s = s.gsub(/&;scripts+src="/js/,'<script src="js')
    elsif f.scan(///).count == 1
        s = s.gsub(/&;scripts+src="/js/,'<script src="../js')
    elsif f.scan(///).count == 2
        s = s.gsub(/&;scripts+src="/js/,'<script src="../../js')
    elsif f.scan(///).count == 3
        s = s.gsub(/&;scripts+src="/js/,'<script src="../../../js')
    else
        puts 22222222222222222222222222222222222222222222211
        puts f.scan(///).count
    end

    File.open(f,'w') { |f1| f1.write(s) }
end

files = `find . | ag html$`.split("n")
files.each do |f|
    if not File.file? f
        next
    end
    s = open(f).read
    if f.scan(///).count == 2
        s = s.gsub(/href="css//,'href="../css/')
    elsif f.scan(///).count == 3
        s = s.gsub(/href="css//,'href="../../css/')
    elsif f.scan(///).count == 4
        s = s.gsub(/href="css//,'href="../../../css/')
    end

    File.open(f,'w') { |f1| f1.write(s) }
end

保存为ruby脚本文件,放在文档的根目录运行即可。


上面的脚本也可以在线下载:

地址1:

https://doc.bccnsoft.com/docs/ruby_2_6_3_core/zzz_change_js_src.rb

地址2:

zzz_change_js_src.rb

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读