Laravel修改视图模板后缀需按版本区分:9+在config/view.php的'extensions'中配置,blade.php必须首位;8及以下需改源码(不推荐)。还需注册自定义引擎或调用View::addExtension()。

面试官问Laravel修改视图模板后缀时,你需要准确说明修改位置、生效范围和关键限制条件,不能只答“改配置”或“改文件名”。
确认Laravel版本对应的位置
先判断项目用的是Laravel 9+还是8及以下——9.0起View组件已剥离为独立包(illuminate/view),【必须在config/view.php中修改】;8.x及更早版本则需直接修改vendor/illuminate/view/Factory.php源码(不推荐)。
这一步错判会导致后续所有操作无效。
修改view.php配置文件
打开config/view.php,在return数组中找到'extensions'键。
将默认的['blade.php']改为你要支持的后缀组合,例如:'extensions' => ['php', 'html', 'tpl']。
注意:blade.php必须保留在数组首位,否则Blade编译器无法识别@符号语法,【删掉或挪动blade.php位置会导致所有@yield/@section失效】。
让新后缀能被正确解析
方法一:注册自定义视图引擎
在AppServiceProvider的boot()方法里添加:
$this->app['view.engine.resolver']->register('html', function () { return new \Illuminate\View\Engines\PhpEngine(); });
这行代码告诉Laravel:遇到.html后缀的视图,用原生PHP引擎渲染,不走Blade编译流程。
方法二:强制重载视图路径映射(仅限调试)
在routes/web.php顶部临时加入:\View::addExtension('tpl', 'php');,这样访问resources/views/welcome.tpl时会按PHP原生方式执行。


















