修改laravel视图模板后缀需同步配置视图引擎映射,否则blade指令被原样输出或白屏;应在config/view.php的'extensions'中添加'html'=>'blade',或在appserviceprovider的boot()中调用addextension('htm','blade'),再执行view:clear并验证渲染效果。

修改Laravel视图模板后缀时,直接改文件扩展名却不调整框架识别逻辑,会导致Blade指令被原样输出、@yield失效、甚至整个页面白屏——这不是缓存问题,而是视图引擎压根没加载你的文件。
确认当前视图引擎配置
打开 config/view.php,找到 'extensions' 键。默认值是 ['blade.php' => 'blade', 'php' => 'php']。这个数组决定了Laravel用哪个引擎解析哪种后缀的文件。
如果只把 resources/views/welcome.blade.php 改成 welcome.html,但没在这里添加 'html' => 'blade',Laravel就会把它当普通PHP文件执行,@if、@foreach 全部变成纯文本。
添加新后缀映射(方法一:修改 config/view.php)
在 config/view.php 的 'extensions' 数组末尾追加一项:
'html' => 'blade'
这行代码告诉Laravel:遇到 .html 文件,用 Blade 引擎渲染。注意键名必须是字符串后缀(带点或不带点均可,Laravel内部会统一处理),值必须是已注册的引擎名称,'blade' 是唯一合法值。
【不要写成 'html' => 'BladeCompiler' 或 'blade.compiler'】,否则服务启动时报错 InvalidArgumentException: View engine [BladeCompiler] is not available.
动态注册新后缀(方法二:在服务提供者中绑定)
创建或编辑 app/Providers/AppServiceProvider.php,在 boot() 方法内插入:
$this->app['view']->addExtension('htm', 'blade');
这行代码等效于修改配置文件,但更灵活——它在运行时生效,适合需要按环境切换后缀的场景。比如开发用 .blade.htm,生产强制走 .blade.php。
注意:此方法必须在视图系统初始化之后调用,所以只能放在 boot() 里,不能放 register()。
验证是否生效
第一步:清空视图缓存 → php artisan view:clear
第二步:将 resources/views/welcome.blade.php 重命名为 welcome.htm(或你配置的任意新后缀)
第三步:访问对应路由,检查页面是否正常渲染,且 @section('content')、{{ now() }} 等 Blade 语法能正确执行。
若页面显示原始 Blade 标签,说明后缀未被识别;若报错 View [welcome] not found,说明文件路径或命名有误,Laravel 仍在找 welcome.blade.php。











