Laravel 10包适配:Sail启动报Failed to open stream错误求助
解决Laravel Sail启动时自定义包服务提供者存在却提示找不到的问题
针对你遇到的Sail启动时提示Failed to open stream: No such file or directory,但服务提供者文件实际存在的问题,试试下面几个排查和解决步骤:
检查自定义包的composer.json自动加载配置
打开vendor/bubalubs/gravity/composer.json,确认autoload区块的PSR-4映射是否正确,比如:"autoload": { "psr-4": { "Bubalubs\\Gravity\\": "src/" } }同时确认
GravityServiceProvider.php文件内的命名空间和类名完全匹配:namespace Bubalubs\Gravity; class GravityServiceProvider extends \Illuminate\Support\ServiceProvider { // ... }验证项目配置里的服务提供者引用
打开Laravel项目根目录的config/app.php,检查providers数组里的服务提供者是否拼写正确,注意大小写:'providers' => ServiceProvider::defaultProviders()->merge([ // ... Bubalubs\Gravity\GravityServiceProvider::class, ])->toArray(),重新生成Composer自动加载映射
执行以下命令强制更新自动加载文件,这能解决很多映射不生效的问题:sail composer dump-autoload -o检查容器内的文件状态
因为Sail运行在Linux容器中,大小写敏感且可能存在本地文件同步问题:- 进入容器确认文件存在:
sail exec laravel.test ls -la vendor/bubalubs/gravity/src/ - 若文件存在但权限异常,修复权限:
sail exec laravel.test chmod -R 755 vendor/bubalubs/gravity/src/ - 重启Sail并清理容器缓存:
sail down -v && sail up -d
- 进入容器确认文件存在:
确认包的安装来源
如果你的自定义包是本地开发的(比如通过composer require本地路径),确认composer.json里的包路径配置正确,没有路径错误导致容器内文件未同步。
内容的提问来源于stack exchange,提问作者theTechnician
相关产品推荐
相关产品推荐

