Laravel可通过配置扩展名或注册引擎使.html/.php文件支持Blade语法:在config/view.php的'extensions'中添加'html'或'php',并清除view缓存;或在AppServiceProvider中调用view()->addExtension('php', 'blade');纯PHP视图需用view()->addLocation()添加路径并以命名空间方式加载。

想让Laravel加载 .html 或 .php 后缀的视图文件,而不是强制用 .blade.php?直接改后缀名会报 View [xxx] not found,因为Laravel默认只识别 .blade.php 后缀并启用Blade编译器,其他后缀被当作纯PHP或静态文件处理,@if、@foreach等指令全部失效。
替换默认Blade后缀为 .html
第一步:打开 config/view.php 文件,在 ['extensions'] 数组中添加 ['html'];
第二步:在 ['compiled'] 配置项下确认缓存路径可写,否则修改后缀后模板无法编译,页面空白且无报错;
第三步:将原 resources/views/welcome.blade.php 重命名为 welcome.html,保持路径不变;
第四步:运行 php artisan view:clear 清除旧缓存——【不执行这步,Laravel仍会加载已编译的 .blade.php 缓存,新后缀完全不生效】;
第五步:访问对应路由,此时 view('welcome') 就能正确加载 welcome.html 并解析 Blade 指令。
让 .php 后缀也能走Blade引擎
方法一:在 AppServiceProvider::boot() 中注册自定义引擎
在 boot() 方法内插入:
view()->addExtension('php', 'blade');
这行代码告诉 Laravel:所有 .php 后缀的视图文件,都交由 Blade 引擎编译——【注意:不能写成 'blade.php',必须是 'blade',否则报 Class 'blade' not found】;
方法二:直接修改 config/view.php 的 ['extensions'] 数组,把 'php' 加进去,和 'blade.php' 并列;
完成后删掉 storage/framework/views/ 下全部缓存文件,否则旧 .php 视图仍按原生 PHP 解析,Blade语法被当成注释或报错。
彻底禁用Blade,纯PHP视图走原生解析
如果某个子目录(如 resources/views/raw/)你希望完全绕过 Blade 编译,只执行原生 PHP 逻辑:
在 AppServiceProvider::boot() 中调用:
view()->addLocation(resource_path('views/raw'));
然后创建一个 resources/views/raw/test.php,里面写 <?php echo date('Y-m-d'); ?>;
渲染时用 view('test') 会失败,因为 Laravel 默认从 resources/views/ 查找,而你新加的路径对应视图名是 raw::test(双冒号分隔);
所以必须显式指定命名空间:view('raw::test') 才能加载成功。


















