Eleventy不会向从嵌套index.md文件生成的索引文件添加html后缀。
例如,下面是一个包含我的源内容的示例目录结构...
|
+- /src (input dir)
|
+- post
| |
| +- my-cool-post
| |
| +- /images
| |
| +- index.md
|
+- index.md
|
+- about.md然后,当我运行命令npx eleventy时,我得到了以下输出...
|
+- /public (output dir)
|
+- post
| |
| +- my-cool-post
| |
| +- /images
| |
| +- index <---- NOTE there is no ".html" suffix on this file
|
+- index.html <----- this file is ok however
|
+- about.html <----- and so is this file这就是我设置.eleventy.js配置文件的方式。
// Data Extensions
const yaml = require("js-yaml");
module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy("_assets");
eleventyConfig.addWatchTarget("./src/_sass/");
eleventyConfig.addDataExtension("yaml", contents => yaml.safeLoad(contents));
eleventyConfig.setTemplateFormats([
"md",
"css",
"jpg",
"png",
"webp",
"svg",
"html"
]);
return {
jsDataFileSuffix: ".11ty",
dataTemplateEngine: "njk",
htmlTemplateEngine: "njk",
markdownTemplateEngine: "njk",
passthroughFileCopy: true,
dir: {
input: "src",
data: "_data",
includes: "_includes",
layouts: "_layouts",
output: "public"
}
}
}如果没有*.html后缀,url http://../post/my-cool-post将返回404错误。如果我手动添加*.html后缀,那么它就可以工作。
你知道我的设置出了什么问题吗?
发布于 2020-08-30 07:09:03
我发现了问题所在。在上面的示例中,/src/post/post.yaml中有一个文件具有以下值:
permalink: "{{ page.filePathStem }}"我把它放在里面的原因是为了创建一个别名permalink,我可以在我的模板中使用它,而不必键入{{ page.filePathStem }}。事实证明,permalink是一个保留属性,显然对呈现输出有影响。从文件中删除行已修复此问题。
https://stackoverflow.com/questions/63652098
复制相似问题