Laravel 的签名 URL 在使用 api 中间件时生成错误的 URL

Laravel's signedURL generates wrong URL when using api middlware

我在 Nuxt 上有一个前端 运行 和 Laravel 作为后端服务。当我使用 Laravel 的 API 中间件生成已签名的 URL - 路径在 URL 中包含 "api",导致页面未找到异常Nuxt这边

因此,以下是更好地了解正在发生的事情的步骤:

  1. 用户在 Nuxt 应用程序中单击一个按钮并向 Laravel API
  2. 发送 ajax 请求
  3. API 控制器生成签名URL

$signedUrl = URL::signedRoute('register', ['email' => $this->request->email, 'group_id' => $this->request->group_id], null, false);

  1. 生成的URL包含路径中的"api",当然不能访问 http://localhost:3000/api/register?email=ss%40gmail.com&group_id=2&signature=ce4fba05bf5ccae6ea20a6043a47ca11de603238214deda7202d19f2989272cb

有没有办法从生成的 URL 中删除 /api/?我试过将 signedRoute 方法中的第 4 个参数(绝对值)设置为 false,但没有用。

默认 api 路由具有前缀 'api',如您的 RouterProvider 所示:

    protected function mapApiRoutes()
    {
        Route::prefix('api')
               ...;
    }

当您为使用前缀 api 的路由 'register' 生成签名 URL 时,生成的 URL 将如预期的那样:www.mydomain.com/api/register?...