我尝试在网上搜索,但没有成功。我一直使用 Chrome/Edge 在我的网站上工作,今天我尝试在 Firefox (93.0) 中打开它,我注意到我的图标都没有加载。此错误消息出现在控制台中:
Content Security Policy: The page’s settings blocked the loading of a resource at http://localhost/icons.svg (“default-src”).
这似乎表明 default-src 被用作后备。我正在使用此 CSP 运行 Apache 服务器:
Header set Content-Security-Policy "default-src 'none'; img-src 'self'; object-src 'none'; script-src 'self'; style-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; connect-src 'self'"
图标 Sprite 的使用方式如下:
<svg class="icon"><use href="icons.svg#settings"></use></svg>
这只是 Firefox 中的一个问题,因为 Edge、Chrome 和 iOS Safari 都工作正常。有什么办法可以解决这个问题吗?
最佳答案
这是一个旧的 Firefox 浏览器错误 - img-src
指令not cover来源在<use xlink:href=>
标签。
Firefox 使用default-src
控制<use xlink:href=>
标签,因此要解决问题 make default-src 'self'
而不是default-src 'none'
.
关于apache - 内容安全策略阻止 Firefox 中的 svg 图标 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69518794/