Laravel: route:cache 不使用子目录中的文件
Laravel: route:cache not use files in subdirectories
我的项目中有很多路由,我没有将所有网络路由存储在单个文件中,而是使用子目录。
例如,当我编写主要路线时,我有标准 routes/web.php,并在该目录中创建了子目录 routes/groups。我有几个文件按某些类别分开。当我不使用路由缓存时它工作正常。但是,如果我尝试通过 php artisan route:cache
创建缓存,它只会为标准文件创建缓存,例如:routes/web.php、routes/channels.php 等。
即使我在 web.php 上添加 require_once 它也不起作用!
路由缓存有什么问题?
Laravel版本:5.6
在子目录中定义路由的正确方法是在 RouteServiceProvider.php
文件中进行。 php artisan route:cache
届时会考虑这些路线。
在您的情况下,在 mapWebRoutes()
函数中添加以下脚本应该有效:
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/groups/{your-filename}.php'));
您还可以为每个路由文件分配单独的前缀、命名空间、分配中间件。例如:
Route::middleware('web')
->namespace($this->namespace)
->prefix('groups')
->group(base_path('routes/groups/{your-filename}.php'));
注意:
route:cache
不适用于基于闭包的路线。所以你必须避免它才能使用 route:cache
.
我的项目中有很多路由,我没有将所有网络路由存储在单个文件中,而是使用子目录。
例如,当我编写主要路线时,我有标准 routes/web.php,并在该目录中创建了子目录 routes/groups。我有几个文件按某些类别分开。当我不使用路由缓存时它工作正常。但是,如果我尝试通过 php artisan route:cache
创建缓存,它只会为标准文件创建缓存,例如:routes/web.php、routes/channels.php 等。
即使我在 web.php 上添加 require_once 它也不起作用!
路由缓存有什么问题?
Laravel版本:5.6
在子目录中定义路由的正确方法是在 RouteServiceProvider.php
文件中进行。 php artisan route:cache
届时会考虑这些路线。
在您的情况下,在 mapWebRoutes()
函数中添加以下脚本应该有效:
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/groups/{your-filename}.php'));
您还可以为每个路由文件分配单独的前缀、命名空间、分配中间件。例如:
Route::middleware('web')
->namespace($this->namespace)
->prefix('groups')
->group(base_path('routes/groups/{your-filename}.php'));
注意:
route:cache
不适用于基于闭包的路线。所以你必须避免它才能使用 route:cache
.