【问题标题】:Laravel: route:cache not use files in subdirectoriesLaravel:路由:缓存不使用子目录中的文件
【发布时间】:2019-07-10 11:58:02
【问题描述】:

我的项目中有很多路由,我没有将所有网络路由存储在单个文件中,我使用子目录。 例如,当我编写主路由时,我有标准的 routes/web.php,并且在这个目录中我创建了子目录 routes/groups。我有几个按某些类别分开的文件。当我不使用路由缓存时它工作正常。但是,如果我尝试通过php artisan route:cache 创建缓存,它只会为标准文件创建缓存,例如:routes/web.php、routes/channels.php 等。 即使我在 web.php 上添加了 require_once 它也不起作用! 路由缓存有什么问题?

Laravel 版本:5.6

【问题讨论】:

    标签: php laravel caching routing


    【解决方案1】:

    在子目录中定义路由的正确方法是在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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-03
      • 2016-09-14
      • 2020-11-08
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      相关资源
      最近更新 更多