标签:YUI

  • 使用 YUI Compressor 压缩 CSS 导致 image/svg+xml 无法显示的问题

    18-08-06 22:04 24125 0 技术

    bootstrap 升级到 4.3 以后,.navbar-toggler-icon 的背景是一个 svg 图像,但被压缩后,url 中的空格全部消失了,所以无法显示这个图标。

    .navbar-light .navbar-toggler-icon { background-image: url(data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://ww…p='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E); }
    

    于是想到修改 java 代码,重新编译。

    https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/CssCompressor.java
    

    修改源码

    找到 CssCompressor.java,修改第 141 行,

    css = this.preserveToken(css, "url", "(?i)url\\(\\s*([\"']?)data\\:", true, preservedTokens);
    

    改为

    css = this.preserveToken(css, "url", "(?i)url\\(\\s*([\"']?)data\\:", false, preservedTokens);
    

    重新编译

    安装 ant

    # yum -y install ant
    # ant // 编译为 jar 文件
    

    生成 .jar 文件位于 build 目录。

    THE END

文章归档

文章日历

2024 年 11 月
26 27 28 29 30 01 02
03 04 05 06 07 08 09
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

文章标签

最新评论

友情链接