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

如何在Eleventy中设置全局默认永久链接(permalink)?

方法1:通过全局数据文件实现

在项目根目录的_data文件夹下新建一个全局数据文件(比如defaults.js),写入以下代码:

module.exports = {
  permalink: (data) => `${data.page.filePathStem}.html`
};

所有页面会自动继承这个permalink规则,无需在每个模板的前置元数据中重复编写。

方法2:通过.eleventy.js配置全局计算字段(推荐,支持优先级覆盖)

直接在Eleventy的核心配置文件.eleventy.js中添加全局计算逻辑,优先使用页面自定义的permalink,无自定义时自动应用全局规则:

module.exports = function(eleventyConfig) {
  // 添加全局计算数据
  eleventyConfig.addGlobalData('eleventyComputed', {
    permalink: function(data) {
      // 页面自定义permalink优先
      if (data.permalink) return data.permalink;
      // 全局默认规则
      return `${data.page.filePathStem}.html`;
    }
  });

  return {
    // 你的其他Eleventy配置(比如输入输出目录等)
  };
};

按需覆盖全局规则

如果某页面需要使用自定义的permalink,直接在该页面的前置元数据中声明即可,全局配置会自动优先使用页面的自定义值:

---
permalink: "custom-page.html"
# 其他页面元数据
---

注意事项

page.filePathStem指的是模板文件相对于Eleventy输入目录的路径(不含文件扩展名),比如src/blog/post.njk的filePathStem为blog/post,最终会生成blog/post.html,和你之前的单页面生成逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:39:54