You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hugo站点地图模板如何排除指定目录文件?解决路径测试报错

解决Hugo站点地图模板排除指定页面的问题

错误原因

你编写的目录判断代码{{ if ne .File.Dir en/foobar }}报错,是因为没有将路径字符串用引号包裹——Hugo模板引擎会把未加引号的en/foobar解析为表达式而非字符串,因此触发语法错误。

正确实现代码

要同时满足「排除sitemap_exclude=true的页面」和「排除content/en/foobar目录下的页面」两个需求,需要用or逻辑组合条件,并通过not取反(即两个条件任一成立时跳过渲染):

{{ range .Data.Pages }}
  {{ if not (or .Params.sitemap_exclude (eq .File.Dir "en/foobar/")) }}
    <!-- 此处放置原站点地图的条目渲染代码 -->
  {{ end }}
{{ end }}

关键细节说明

  • .File.Dir返回的路径末尾默认带有斜杠(例如en/foobar/),判断时需保留末尾斜杠,避免误匹配类似en/foobarabc的目录
  • Hugo模板中统一使用正斜杠/作为路径分隔符,无需适配Windows系统的反斜杠
  • 如果需要排除en/foobar及其所有子目录的页面,可改用hasPrefix函数:
    {{ if not (or .Params.sitemap_exclude (hasPrefix .File.Dir "en/foobar/")) }}
    

内容的提问来源于stack exchange,提问作者oceanclub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 17:52:38