Eleventy添加超2个页面到集合时出现永久链接输出冲突
Eleventy永久链接输出冲突问题解决思路
问题根源
目录数据文件(如c_blog/c_blog.json)的全局permalink配置会覆盖目录下所有文件的permalink设置,包括index.html自身的前置元数据配置。当目录下文件数量增加时,Eleventy的渲染逻辑会触发重复permalink检测,导致系统判定同一个public/blog/index.html被多次写入。
修复方案
方案一:动态目录数据permalink(推荐)
修改目录数据文件(c_blog/c_blog.json、c_docs/c_docs.json),添加条件判断,跳过index.html的默认permalink规则:
{ "permalink": "{{ page.fileSlug !== 'index' ? '/blog/' + page.fileSlug + '/' : false }}" }
这样index.html会使用自身前置配置的permalink: /blog/,其他md文件则沿用目录默认的permalink规则。
方案二:移除目录全局permalink,单独配置文件
删除c_blog/c_blog.json和c_docs/c_docs.json中的permalink字段,给每个md文件(如test-a.md、test-b.md、test-c.md)手动添加前置元数据:
--- permalink: /blog/{{ page.fileSlug }}/ ---
保留index.html的前置permalink配置不变。
验证步骤
- 应用上述任意一种修复方法
- 执行命令:
npm run build - 确认终端无输出冲突错误,同时检查
public目录下的文件结构,确保blog/index.html和各文章的permalink路径正确生成
内容的提问来源于stack exchange,提问作者wcDogg
相关产品推荐
相关产品推荐

