Laravel路由route()方法未解析输出原始模板字符问题求助
问题根因
%7B%7B是{{的URL编码,出现该问题的核心原因是Blade模板引擎未解析你写的{{ route('tournament') }}语法,直接将原始内容输出到了前端,具体常见触发原因如下:
- 模板文件后缀错误:只有后缀为
.blade.php的文件才会被Laravel识别为Blade模板、解析{{}}语法,如果你用.html、.php作为模板后缀,都不会处理Blade语法。 - 模板文件存放位置错误:你如果将模板文件直接放在
public目录下直接访问,没有走Laravel的路由/视图渲染流程,Blade语法不会被解析。 - 视图渲染逻辑错误:返回当前页面的控制器方法没有用
view()方法加载resources/views目录下的模板,导致视图层没有触发Blade解析逻辑。
解决步骤
- 首先修改存放a标签代码的文件后缀,统一改为
.blade.php,并将文件移动到resources/views目录下的对应子目录中(例如admin相关模板放在resources/views/admin目录下)。 - 确认你访问当前页面是走Laravel路由返回的视图,当前页面对应的控制器方法必须使用
view()方法加载模板,示例:
// 比如你当前页面是后台首页,对应的控制器方法写法 public function index() { return view('admin.pages.index'); }
不要直接访问模板文件,也不要将业务模板放在public目录下。
3. 清理视图缓存,避免旧编译文件影响,执行命令:php artisan view:clear
4. 验证解析状态:在当前模板中加入测试代码{{ 'Blade解析测试' }},刷新页面如果输出中文“Blade解析测试”就说明解析正常,此时{{ route('tournament') }}会自动生成正确的路由链接。
补充说明
你贴出的路由配置、Tournament控制器代码均无语法错误,不需要调整。
内容的提问来源于stack exchange,提问作者Md. Tariqul Islam Khan
相关产品推荐
相关产品推荐

