修改laravel视图模板后缀为.twig需三步:一在config/view.php中将'twig'置extensions首位;二在appserviceprovider中注册view::addextension('twig', 'twig');三将所有view()调用显式改为.view('xxx.twig'),否则仍报“view not found”。

修改Laravel视图模板后缀后,原有路由仍按默认.blade.php后缀查找文件,导致页面报错“View [xxx] not found”,必须同步调整视图解析逻辑才能让路由正常加载新后缀模板。
修改视图后缀为.twig
在config/view.php中找到extensions数组,将'blade.php'替换为'twig',并确保'twig'在首位:
'extensions' => ['twig', 'php'],
这一步必须放在第一位,否则Laravel会优先尝试加载.blade.php文件,即使.twig文件存在也会报错。
让路由绑定识别.twig模板
默认情况下,Route::view()和资源控制器的view()调用(如return view('posts.show');)仍会拼接.blade.php后缀。需手动指定完整路径:
将return view('posts.show');改为return view('posts.show.twig');
注意:这里不是改配置,而是显式写死后缀——因为view()辅助函数不读取extensions顺序来自动补后缀,它只对无后缀路径做默认补全。
批量适配现有路由
第一步:打开app/Providers/AppServiceProvider.php,在boot()方法中注册自定义视图解析器:
View::addExtension('twig', 'twig');
第二步:在config/view.php中确认paths指向正确的视图目录(如resource/views),且该目录下已存在posts/show.twig文件。
第三步:检查所有控制器中的view()调用,把view('admin.index')统一改成view('admin.index.twig')——【不改会导致404,且错误提示不明确】











