我正在尝试解决资产(css 和 img)文件夹的路径,但它出错或在我的 markdown 文件和 base.ejs 文件中完全找不到路径...
请帮帮我,我知道这是我的配置问题或我不太了解的问题...
我正在尝试解决资产(css 和 img)文件夹的路径,但它出错或在我的 markdown 文件和 base.ejs 文件中完全找不到路径...
请帮帮我,我知道这是我的配置问题或我不太了解的问题...
assets/
无法访问 .src/blogs/ 中的表单帖子(例如 .src/blogs/blockchain-technology.md)
你需要../../assets/
而不是../assets/
在 blogs/ 文件夹中的帖子使用的模板中。
这是您的项目的结构:
➜ crypto-blogs-master tree -aI 'node_*' -L 3
.
├── .eleventy.js
├── ...
└── src
├── assets
│ ├── css
│ └── img
├── blogs
│ ├── blockchain-technology.md
│ ├── blogs.json
│ └── ...
├── _includes
│ └── base.ejs
├── blogs.md
├── index.md
├── projects.md
├── ...
当尝试从 blogs/index.html 或 projects/index.html 访问资产资源时,它按预期工作。因为,在base.ejs中,你有:
<link href="../assets/css/..." /> <!-- line 16 -->
<img src="../assets/img/... " /> <!-- line 24 -->
但它不适用于 blogs/ 文件夹中的帖子。
要解决此问题,您需要更改资产的路径
# from
../asstes/
# to
../../asstes/
为此,您可以:
relative_path
。---
relative_path: '..'
---
// base.ejs
替换所有出现的:../assets/
与:<%= relative_path %>/assets/
在base.ejs
对于博客文件夹中的每个文件(帖子),您需要重新定义relative_path
,
任何一个:
3.1。在他们各自的 Front Matter 上:
---
relative_path: '../..'
---
// blockchain-technology.md + ... post-n.md
3.2. 或通过在 blogs 文件夹中创建一个包含此代码的文件blogs.11tydata.js一次为所有这些使用11tyComputed
module.exports = function () {
return {
eleventyComputed: {
relative_path: "../.."
}
}
}
注 1在 /blogs/blogs.json 中定义relative_path
将不起作用。因为11ty中级联数据的合并顺序(截至当前版本)。
注意 2relative_path
index.md正确的是“。” 而不是“..”,但由于它在输入目录中,所以没关系。
注 3更快的解决方案是复制 base.ejs,重命名它(例如 post.ejs),编辑它,然后从 blog.json 调用。
对我来说,当事情不正常时,我总是查看输出目录。我下载了你的 zip,运行eleventy
输出构建,我看到你的资产被正确复制了。例如,在 中public
,我看到一个assets/css
目录styles.css
。在您的 HTML 中,您将链接到:/assets/css/styles.css
. 你试过吗?