You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helmet配置Content Security Policy后Bootstrap字体加载报错如何修复

问题原因

你配置的内容安全策略(CSP)中fontSrc指令仅允许加载来自https://fonts.gstatic.com的字体资源,而Bootstrap部分内置字体/图标采用base64编码的data: URI内嵌提供,不在允许列表内,因此被CSP拦截触发报错。

修复方案

修改helmet.contentSecurityPolicy配置中的fontSrc指令,添加data:到允许列表即可,修改后完整配置如下:

app.use(helmet());
app.use(
helmet.contentSecurityPolicy({
    directives: {
        defaultSrc: ["'self'"],
        scriptSrc: ["'self'", "https://cdn.jsdelivr.net"],
        objectSrc: ["'none'"],
        styleSrc: ["'self'", "https://cdn.jsdelivr.net"],
        // 新增data: 允许加载base64编码的内嵌字体
        fontSrc: ["https://fonts.gstatic.com", "data:"],
        upgradeInsecureRequests: [],
    },
})
);

如果需要严格控制安全权限,也可以更换Bootstrap引入方式,不使用内嵌base64字体的打包版本,改为单独加载字体资源,就不需要新增data:的允许规则。


内容的提问来源于stack exchange,提问作者Jose-xd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:39:01