Bootstrap 图标库
Bootstrap 官方开源图标(icon)库
Bootstrap 图标库
Bootstrap 官方开源图标(icon)库
symbol 标签包裹的SVG片段, 之后 <use href="bootstrap-icons.svg#basket" /> 会从中匹配出 id 为 basket 的SVG片段并以 shadow root 的方式嵌入在页面中,这样就完成了一次SVG的渲染。这里比较奇怪的是,use标签中href属性的请求不会在调试面板的 network 看板中出现,整个过程似乎是在浏览器中进行。

use 中 href 的地址更换为跨域地址,则会出现以上报错,可见该属性并不支持跨域请求。bootstrap-icons.svg 文件的请求,仅第一次访问页面时会打印该接口的日志:bootstrap-icons.svg 中的内容,再重新reload页面甚至重启服务,都是不会再重新请求的, 不同页面之前相同 href 的缓存并不共享可见SVG渲染中的缓存的可控性非常重要, 因为这不仅影响到页面性能,也会影响到用户体验。如果缓存机制处理不当,可能会导致用户看到过期的图标,或者增加不必要的网络请求。
href 中的地址res.setHeader("Cache-Control", "no-cache");