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

Laravel Blade模板继承页面空白无报错,请求排查问题

问题:Laravel Blade模板继承后页面空白无报错

我是Laravel新手,正在使用Laravel Blade的模板继承功能,编写了一段仅用于在浏览器显示Hello的简单代码,但运行后页面显示空白,浏览器及控制台均无报错信息。以下是我的代码,请求帮忙找出问题所在:

master.blade.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>master page</title>
</head>
<body>
<div>
@yield('content')
</div>
</body>
</html>

body.blade.php

@extends('master')
@section('content')
<h1> Hello </h1>
@endsection

studentcontroller.php

public function viewmasterpage() {
return view('master');
}

web.php

Route::get('/masterpage','studentcontroller@viewmasterpage')->name('masterpage');

问题分析与解决办法

别着急,我帮你找出问题啦,核心问题就在控制器返回的视图上:

  • 你返回的是母版视图而非子视图
    你的控制器方法viewmasterpage里返回的是view('master'),但实际上你应该返回继承了母版的子视图body.blade.php,也就是把代码改成:
    public function viewmasterpage() {
        return view('body');
    }
    
    因为母版里的@yield('content')只是个占位符,只有子视图填充这个内容后,返回子视图才会把母版和子视图的内容合并渲染出来。你直接返回母版的话,content区块是空的,页面自然就显示空白啦。

另外还有两个小细节可以检查下,确保万无一失:

  • 确认视图文件路径:master.blade.php和body.blade.php要放在resources/views目录下,如果是放在子目录(比如layouts),那引用的时候要加上路径,比如@extends('layouts.master'),返回视图也要写成view('layouts.body')。
  • 清除视图缓存:如果修改后还是没有效果,可以运行命令php artisan view:clear清除编译后的视图缓存,避免缓存导致新修改不生效。

内容的提问来源于stack exchange,提问作者Parteek Kumar Kherpa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:52:39