Vite构建Vue3在Edge刷新时触发CSP object-src错误求助
解决Edge浏览器生产环境CSP错误:'plugin-types'指令已废弃
问题拆解
生产环境(Azure IIS/NGINX)刷新页面时,Edge控制台弹出CSP错误:
Content-Security-Policy指令'plugin-types'已从规范中移除。若要阻止插件,建议指定"object-src 'none'"替代。
Vite开发模式无此问题,说明是生产环境的服务器配置或构建后注入的CSP规则里包含了已废弃的plugin-types指令。
修复步骤
1. 定位CSP规则来源
- IIS服务器:打开站点的
web.config文件,查找<httpProtocol>节点下的<customHeaders>,找到Content-Security-Policy配置项。 - NGINX服务器:查看站点配置文件(如
/etc/nginx/sites-available/你的站点.conf),寻找add_header Content-Security-Policy相关指令。 - 前端构建配置:如果是Vite构建时自动注入的CSP,检查
vite.config.js/ts中的CSP插件(如vite-plugin-csp)配置,确认是否包含plugin-types。
2. 修改CSP规则
移除原规则中的plugin-types指令,替换为object-src 'none'。示例如下:
原配置:
Content-Security-Policy: default-src 'self'; plugin-types application/pdf; ...
修改后:
Content-Security-Policy: default-src 'self'; object-src 'none'; ...
3. 验证修复
- 重启对应服务:IIS重启站点或应用池,NGINX执行
sudo nginx -s reload。 - 清除Edge浏览器缓存后刷新页面,检查控制台是否仍有CSP错误。
额外提醒
- 若使用CDN或第三方安全服务(如Azure Front Door),需同步检查这些服务的CSP配置,避免规则冲突。
- 测试环境与生产环境保持一致的CSP配置,提前发现类似问题。
内容的提问来源于stack exchange,提问作者Energetic Pixels
相关产品推荐
相关产品推荐

