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

Laravel项目中Swagger UI出现webpack资源加载失败及类型错误怎么办?

Laravel Swagger UI 特定端点 TypeError 及资源加载错误的解决

问题现象

在Laravel项目中使用Swagger UI生成API文档(访问地址 http://localhost:8014/api/documentation)时,浏览器控制台出现以下错误,且仅部分API端点触发该问题:

TypeError 错误信息

TypeError: Cannot destructure property 'type' of 'u' as it is undefined.
    at build-request.js:115:9
    at Array.forEach (<anonymous>)
    at build-request.js:107:30
    at Array.forEach (<anonymous>)
    at applySecurities (build-request.js:106:12)
    at buildRequest (build-request.js:16:9)
    at Object.execute_buildRequest [as buildRequest] (index.js:249:11)
    at actions.js:453:24
    at index.js:174:16
    at redux.mjs:331:12

附加资源加载错误

Could not load content for webpack://SwaggerUIBundle/src/core/system.js (Fetch through target failed: Unsupported URL scheme; Fallback: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME)

已知前提:

  • 可正常访问文档页面
  • API数据结构与Swagger文档一致
  • Laravel与Swagger UI版本兼容
  • 已清理Swagger缓存并重新生成文档

原因分析

  1. 核心错误原因:TypeError 是Swagger UI处理请求安全配置时触发的——部分端点的OpenAPI规范中,security配置引用了未正确定义的安全方案,或者全局的SecurityScheme缺少必填的type字段,导致代码解构type属性时遇到undefined值。
  2. 资源加载错误:属于次要衍生问题,是TypeError触发后Swagger UI内部逻辑异常,导致尝试加载浏览器无法识别的webpack://协议资源,进而出现404。
  3. 仅部分端点异常:说明只有这些端点的安全配置存在合规性问题,其他端点的安全配置符合规范。

解决步骤

  • 排查触发错误的API端点的Swagger注解,检查@OA\Security配置,确认是否引用了未在全局@OA\SecurityScheme中定义的安全方案。
  • 验证全局@OA\SecurityScheme配置,确保每个安全方案都包含必填的type字段(例如type="apiKey"、type="http"),且结构完全符合OpenAPI 3.x规范。
  • 对于有问题的端点:若该端点无需安全验证,移除多余的security注解;若需要验证,修正配置使其引用正确的安全方案。
  • 重新生成Swagger文档(如执行 php artisan l5-swagger:generate,针对l5-swagger包),清理浏览器缓存后重新测试。
  • 若资源加载错误仍存在,重新发布Swagger UI静态资源:执行 php artisan vendor:publish --tag=l5-swagger-assets,再次清理缓存测试。

内容的提问来源于stack exchange,提问作者Ahmad Badpey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:45:23