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

2018-08-06 22:04:20 1709 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

    没有找到数据。
您的邮箱不会被公开