Laravel9 staging站点composer update报无法写入to://app.js错误
问题根因
报错里的异常路径to://app.js说明Flysystem读取到的public磁盘根路径配置完全错误,和storage软链接、前端资源构建没有关系,问题出在文件系统配置项的url字段被误配置为to,导致路径解析时拼接出了非法的协议前缀。你之前执行storage:link、npm run dev没解决问题,是因为这两个操作完全没触碰到错误的配置项。
修复步骤
- 修正文件系统配置
打开项目下的config/filesystems.php文件,找到disks.public配置段,确保配置和下面的标准格式一致,重点检查url字段不要误写为固定字符串to:
'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, ],
如果你是用环境变量读取该配置,也要同步检查.env文件里的对应变量值,不要出现拼写错误。
- 清理项目缓存
配置修改完成后,在项目根目录依次执行以下命令清除所有缓存,避免旧的错误配置持续生效:
php artisan config:clear php artisan cache:clear
- 验证修复结果
缓存清理完成后重新执行资源发布命令:
php artisan vendor:publish --tag=laravel-assets --ansi --force
命令正常执行无报错即修复完成,后续再执行composer update也不会再触发该post-update-cmd脚本错误。
补充说明
你之前通过npm run dev生成的是业务前端编译资源,和Laravel框架自带的vendor静态资源发布是两个独立流程。这个报错不会影响你业务JS/CSS的生成,但会导致框架自带的默认跳转页、错误页、验证页等场景的配套静态资源无法正常发布,后续访问对应页面时会出现静态资源404的问题,按上述步骤修改后即可彻底解决。
内容的提问来源于stack exchange,提问作者ThurstonLevi
相关产品推荐
相关产品推荐

