在Go Fiber中使用Mustache模板引擎时局部模板无法加载
问题排查:Go Fiber Mustache局部模板无法加载
核心问题:模板引用路径错误
你的layout.mu里引用局部模板时带了views/前缀,但Mustache引擎已将./views设为模板根目录,多余的前缀会导致引擎找不到对应文件。
修复步骤
- 修正layout.mu中的引用路径
将原代码里的局部模板引用:
{{> views/partials/header }} {{> views/partials/footer }}
修改为:
{{> partials/header }} {{> partials/footer }}
- 确认文件结构与引擎配置匹配
保持现有文件结构不变,你的引擎初始化代码mustache.New("./views", ".mu")已指定根目录为./views,局部模板路径只需相对于该根目录编写:
views ├── layout.mu └── partials ├── header.mu └── footer.mu
- 验证渲染逻辑
你的路由渲染代码c.Render("index", fiber.Map{"title": "index"}, "layout")逻辑正确,布局嵌入功能正常说明引擎基础渲染无问题,仅需修正局部模板引用路径即可生效。
修复后的完整layout.mu代码
<!DOCTYPE html> <html lang="en"> <head> <title>{{title}}</title> <script src="https://unpkg.com/htmx.org@1.9.9" crossorigin="anonymous"></script> <link href='/static/css/global.css' rel='stylesheet'> <link href='https://fonts.googleapis.com/css?family=Rubik' rel='stylesheet'> </head> <body> {{> partials/header }} {{{embed}}} {{> partials/footer }} </body> </html>
内容的提问来源于stack exchange,提问作者Eliasd
相关产品推荐
相关产品推荐

