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

18-08-06 22:04 23439 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 年 03 月
27 28 29 30 31 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
01 02 03 04 05 06 07

文章标签

最新评论

友情链接