Laravel 8 Blade扩展视图无法显示问题排查求助
搞定你的Laravel Blade视图不显示问题
嘿,我一眼就瞅到问题的核心啦!你现在的问题是路由返回错了视图文件,导致子模板的内容根本没被加载进来。
为啥会这样?
你的主布局layout/main.blade.php只是个框架,里面的@yield('content')就像个占位符,得靠扩展它的子模板来填充内容。但你现在路由直接返回主布局,相当于只加载了空框架,自然看不到hello啦。
一步步修复:
1. 先确认你的文件结构(我先假设你的子模板是test.blade.php,放在视图根目录)
确保文件位置是这样的:
resources/ └── views/ ├── layout/ │ ├── main.blade.php # 你的主布局 │ └── header.blade.php # 头部模板 └── test.blade.php # 写了@extends的那个子模板
2. 修正路由代码
把路由里返回的视图改成你的子模板,而不是主布局:
// 原来的错误写法:直接返回主布局 Route::get('/', function () { return view('layout/main'); }); // 修正后:返回子模板,它会自动加载主布局并填充content Route::get('/', function () { return view('test'); }); Route::get('/test2', function () { return view('test'); // 这里也一样,要返回子模板 });
3. 检查子模板的细节
- 确保子模板的文件名是
test.blade.php(后缀必须是.blade.php,Laravel才会识别为Blade模板) - 如果你的子模板放在其他子目录,比如
views/pages/test.blade.php,那路由里要写成view('pages.test')(用点代替斜杠)
4. 额外小技巧(如果还是不行的话)
要是你之前缓存过视图,可以清一下缓存试试:
php artisan view:clear
这样改完之后,刷新页面应该就能看到hello啦!
内容的提问来源于stack exchange,提问作者Nightcrawler
相关产品推荐
相关产品推荐

