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

Laravel启动报错:Target class [App\Http\Middleware\HandleInertiaRequests]不存在

问题:Laravel应用启动后访问localhost报错 HandleInertiaRequests 类不存在

我通过以下命令启动Laravel应用:

user@Grieg:~/DevProjects/first-app $ ./vendor/bin/sail up

但访问http://localhost时收到如下错误:

Illuminate
 \ 
Contracts
 \ 
Container
 \ 
BindingResolutionException
PHP 8.2.6
10.11.0
Target class [App\Http\Middleware\HandleInertiaRequests] does not exist.

我已在\App\Http\kernel.php文件中配置该中间件:

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
        HandleInertiaRequests::class,
        \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class,
    ],
];

请求信息如下:

http://localhost/
GET
curl "http://localhost/" \
   -X GET \
   -H 'host: localhost' \
   -H 'connection: keep-alive' \
   -H 'cache-control: max-age=0' \
   -H 'sec-ch-ua: "Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"' \
   -H 'sec-ch-ua-mobile: ?0' \
   -H 'sec-ch-ua-platform: "Windows"' \
   -H 'upgrade-insecure-requests: 1' \
   -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' \
   -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
   -H 'sec-fetch-site: same-origin' \
   -H 'sec-fetch-mode: navigate' \
   -H 'sec-fetch-user: ?1' \
   -H 'sec-fetch-dest: document' \
   -H 'referer: http://localhost/' \
   -H 'accept-encoding: gzip, deflate, br' \
   -H 'accept-language: en-CA,en-GB;q=0.9,en-US;q=0.8,en;q=0.7' \
   -H 'cookie: remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d=eyJpdiI6IkVkY3BZTXc5N3BUbFhiOEdrQUxSNlE9PSIsInZhbHVlIjoiaHZIRmlsSUM2Z2p3SlBWNG1HeUNpeWthe

请问该如何解决?怎么下载或导入所需的依赖?


解决建议
  • 安装Inertia Laravel适配器并生成中间件

    1. 进入Sail容器:
      ./vendor/bin/sail shell
      
    2. 安装Inertia的Laravel依赖:
      composer require inertiajs/inertia-laravel
      
    3. 生成HandleInertiaRequests中间件文件:
      php artisan inertia:middleware
      
      执行后会自动在app/Http/Middleware目录下创建对应的文件
  • 修正Kernel.php中的命名空间引用
    打开app/Http/Kernel.php,在文件顶部添加命名空间导入:

    use App\Http\Middleware\HandleInertiaRequests;
    

    或者直接把中间件条目改为完整类名:

    \App\Http\Middleware\HandleInertiaRequests::class,
    
  • 清除应用缓存
    执行以下命令清除配置和路由缓存:

    ./vendor/bin/sail artisan config:clear
    ./vendor/bin/sail artisan route:clear
    
  • 重启Sail容器
    先停止容器再重启,确保依赖生效:

    ./vendor/bin/sail down
    ./vendor/bin/sail up -d
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:57:46