在使用
runtime
时,我在这里遇到了在使用shields.io图标出现了不显示的问题
我的图标
shields.io徽标库网址
问题
这里直接使用它的链接,可是在使用的时候出现图标不显示的情况(如下图显示)。
后面我进行了排查,发现链接出现了转义的情况(如下图)
1 | <!-- 原链接 --> |
总结
进行了一番查询,总结了问题,这是使用了pug
文件时出现的转义问题,出现&
的问题通常是因为在处理或传递URL
参数时,没有正确进行 URL
编码。
URL
编码是将特殊字符转换为特定格式的过程,以确保它们能够安全地在URL
中传递。在URL
中,&
是用来分隔参数的特殊字符。如果没有进行URL
编码&
将被解释为HTML
实体&
,从而导致链接中的&
被错误地转义成&
。
如下URL链接:
1 | https://example.com?name=John&age=25 |
在这个URL
中,&
用于分隔两个参数name
和age
。如果没有对参数值进行正确的URL
编码,像John&age
这样的部分会被认为是一个参数,导致&
被转义成&
。
为了解决这个问题,应该对URL
参数进行正确的编码,以确保其中的特殊字符不被错误解释。在JavaScript
中,可以使用encodeURIComponent()
函数来对参数值进行编码。在你的示例中,使用decodeURIComponent()
函数对URL
进行解码,可能是因为之前进行了URL
编码,而现在需要将编码后的URL
解码回来。
确保在生成URL
时对参数值进行URL
编码,并在使用这些参数时进行解码,这样就能避免出现&
的问题。这样,链接中的特殊字符将被正确地传递和解释,避免了出现不必要的转义。
shields.io徽标不显示解决方法
解决shields.io图标不显示的方式很简单,只需要把#{}
改为!{}
就可以了。
找到[Blogroot]\themes\butterfly\layout\includes\third-party\runtime\
目录下的runtime-js.pug
文件。
1 | - img.src = "#{offduty_img}"; |
这样你的图标就能正常显示了。