Laravel 8安装darkaonline/l5-swagger执行vendor:publish报无法创建根目录错误咨询
报错原因
该错误是执行vendor:publish命令时,L5Swagger扩展包读取的文档存储路径解析结果为空,Flysystem本地适配器接收到空的路径参数,无法创建对应根目录,常见触发原因有三个:
- 扩展包版本不兼容:安装的
darkaonline/l5-swagger版本过高,不支持Laravel 8,导致配置解析异常 - 环境变量缺失:
.env文件中缺少L5Swagger需要的路径配置,发布资源时读取的存储路径为空 - 配置缓存冲突:Laravel存在旧的配置缓存,新安装的扩展包配置读取错误
解决方案
按以下步骤依次操作即可解决:
- 第一步:先清理Laravel配置缓存,执行命令:
php artisan config:clear
- 第二步:确认扩展包版本适配Laravel 8,若版本过高先卸载重装适配版本:
composer remove darkaonline/l5-swagger composer require darkaonline/l5-swagger:8.*
- 第三步:在项目根目录
.env文件中添加L5Swagger基础路径配置:
L5_SWAGGER_DOCS_DIR = "storage/api-docs" L5_SWAGGER_ASSETS_PATH = "public/vendor/swagger-ui"
- 第四步:手动创建扩展包需要的存储目录,Linux/Mac环境可同时赋予读写权限,Windows环境跳过权限设置:
mkdir -p storage/api-docs chmod -R 755 storage
- 第五步:重新执行资源发布命令:
php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"
内容的提问来源于stack exchange,提问作者Menisha Myelwaganam
相关产品推荐
相关产品推荐

