Пользовательские файлы маршрутизации Laravel не работают с новыми маршрутами

#api #single-page-application #laravel-8 #vuejs3

Вопрос:

Я создаю CMS SPA с Laravel 8, и я хотел разделить маршруты по категориям (администратор, api, аутентификация) в отдельных файлах маршрутов с использованием пользовательских слизней (/admin/настройки, /аутентификация/логин), но я не могу заставить его работать, так что я делаю не так? Все это работало, когда это был файл API, но при разделении его на отдельные файлы это не сработает.

routes/admin.php

 Route::group(['middleware' => 'auth:sanctum'], function () {
    Route::get('settings', [SettingsController::class, 'index'])->name('settings');
});
 

routeServiceProvider.php

 public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::middleware('web')
            ->group(base_path('routes/web.php'));

        Route::prefix('api')
            ->middleware('api')
            ->group(base_path('routes/api.php'));

        Route::prefix('auth')
            ->middleware('auth')
            ->namespace($this->namespace)
            ->group(base_path('routes/auth.php'));

        Route::prefix('admin')
            ->middleware('admin')
            ->namespace($this->namespace)
            ->group(base_path('routes/admin.php'));

    });
}
 

routes/web.php

 Route::get('/{any}', function () {
   return view('layouts.vue');
})->where('any', '^(?!api|admin|auth).*

kernel.php

 protected $middlewareGroups = [
    'web' => [
        AppHttpMiddlewareEncryptCookies::class,
        IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,
        IlluminateSessionMiddlewareStartSession::class,
        // IlluminateSessionMiddlewareAuthenticateSession::class,
        IlluminateViewMiddlewareShareErrorsFromSession::class,
        AppHttpMiddlewareVerifyCsrfToken::class,
        IlluminateRoutingMiddlewareSubstituteBindings::class,
    ],
    'api' => [
        LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
        'throttle:60,1',
        IlluminateRoutingMiddlewareSubstituteBindings::class,
    ],
    'admin' => [
        LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
        'throttle:60,1',
        IlluminateRoutingMiddlewareSubstituteBindings::class,
    ],
    'auth' => [
        LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
        'throttle:60,1',
        IlluminateRoutingMiddlewareSubstituteBindings::class,
    ]
];
 

Компонент.vue

 const response = axios.get('/admin/settings')// not giving the data back
const response = axios.get('/api/settings')// in the past did work
 

Комментарии:

1. Что php artisan route:list выводит?

);
kernel.php


Компонент.vue


Комментарии:

1. Что php artisan route:list выводит?