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

diglactic/laravel-breadcrumbs如何将父级修改为指向子目录的自定义链接

问题解决方法

根因说明

这个问题本质是Laravel部署在子目录时,默认生成的路由没有自动带上子目录前缀,导致route('home')生成的路径指向根域名而非子目录。

可选择的解决方案

方案1:配置全局路由前缀(优先推荐)

一次性解决所有路由生成的前缀问题,原有面包屑代码无需修改:

  1. 打开app/Providers/RouteServiceProvider.php,修改boot方法:
public function boot()
{
    // 新增全局路由前缀配置
    $this->prefix(env('APP_SUBDIR', ''))->group(function () {
        parent::boot();
    });
}
  1. 在.env文件添加对应配置:
APP_SUBDIR=/myapp

配置完成后所有通过route()函数生成的链接都会自动带上/myapp前缀。

方案2:单独修改home面包屑定义

如果不想改动全局配置,可以直接调整home面包屑的跳转路径:

Breadcrumbs::for('home', function (BreadcrumbTrail $trail) {
    // 直接指定跳转路径,不需要用route()生成
    $trail->push('首页', '/myapp/');
});

方案3:仅调整当前blog面包屑的父级

如果只有这一处面包屑需要适配,也可以跳过调用parent方法,手动添加父级项:

Breadcrumbs::for('blog', function (BreadcrumbTrail $trail) {
    $trail->push('首页', '/myapp/');
    $trail->push('Blog', route('blog'));
});

验证生效

修改完成后执行以下命令清空缓存即可:

php artisan route:clear
php artisan config:clear

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:24:01