Laravel 11 部分核心文件缺失求助:Kernel.php、api.php等无法找到
Laravel 11 缺失Kernel.php、Middleware.php、api.php等文件的解决方法
这些文件缺失不是安装错误,而是Laravel 11对架构做了精简优化,默认不再生成这些文件,对应的配置逻辑已迁移到新的位置:
Kernel.php 与 Middleware.php:
Laravel 11 将原来app/Http/Kernel.php中的中间件配置、app/Http/Middleware目录下的默认中间件定义,整合到了bootstrap/app.php文件中。你可以通过withMiddleware方法完成全局中间件、路由中间件的注册,示例:return Application::configure(basePath: dirname(__DIR__)) ->withRouting(...) ->withMiddleware(function (Middleware $middleware) { // 注册全局中间件 $middleware->append(TrustProxies::class); // 注册路由中间件别名 $middleware->alias([ 'auth' => Authenticate::class, 'admin' => AdminMiddleware::class, ]); }) ->create();api.php路由文件:
Laravel 11 默认不自动创建routes/api.php,如果需要使用API路由,可手动在routes目录下创建该文件,然后在bootstrap/app.php的withRouting方法中添加api路由的引用:->withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', // 新增这一行 commands: __DIR__.'/../routes/console.php', health: '/up', )
如果是从Laravel 10升级而来,需按照官方升级向导的步骤,将原Kernel.php中的中间件配置迁移到bootstrap/app.php的withMiddleware闭包内,无需保留原Kernel文件。
内容的提问来源于stack exchange,提问作者Maruf Abdullah
相关产品推荐
相关产品推荐

