关于angularjs:为什么base64 CSS背景图片无法在Firefox中显示?

Why don't base64 CSS background images show up in Firefox?

刚刚将浏览器升级到Firefox 40(两天前发布),现在我注意到不再显示base64 CSS背景图像。 所有其他浏览器(包括旧版本的Firefox)都可以很好地加载图像。

在控制台中,出现以下错误:

Content Security Policy: The page's settings blocked the loading of a resource at data:image/png;base64,iVBORw0KGgoAAAA ......... CuwAAAABJRU5ErkJggg== ("default-src *").

我的CSS看起来像这样:

1
2
3
.image {
    background-image: url("data:image/svg+xml;base64,iVBORw0KGgoAAAA .....");
}

我正在使用Angular,并且在html标记上包含了ng-csp指令,尽管删除该指令没有任何区别。


kba留下的评论就是解决方案! 添加一个带有" * data:"的img-src的Content-Security-Policy标头就可以了。 新的Firefox不包含data:协议作为*的一部分,因此需要明确添加它。