为了让 Pelican 生成 html 到 link 图像,表达路径的正确方法是什么?

What is the correct way to express a path in order to get Pelican generated html to link to an image?

我刚开始用 Pelican 创建博客,想 link 一张图片。我通过在我的 Markdown 文件中包含以下行来做到这一点:

<img src="./myImg1a.png" alt="./myImg.png" style="width: 750px; height: 800px;"/>

此行已成功复制到 html 文件中,Pelican 将其放置在输出目录中(即 /myBlog/output)。我将 png 文件放在输出目录中(即与 html 文件相同的目录并出现以下错误:

WARNING:root:Unable to find file /category/myImg1a.png/index.html or variations. 

其中 /category 指的是 myBlog/output/category。相反,当我使用以下 html 代码时:

<img src="/myImg1a.png" alt="/myImg.png" style="width: 750px; height: 800px;"/>

一切正常。我不明白为什么这应该是:

  1. 如果图片文件和html文件在同一个目录,不应该是“./myImg1.png”和“/myImg.png " 有误吗?

  2. 为什么要查找文件夹 /category/myImg1a.png/index.html

首先,根据设计,您不应更改 output directly/manually.
的内容 您应该将所有静态内容放在单独的目录中,该目录通常命名为 imagespaths。并且,然后将 pelicanconf.py 中的路径配置为:

# ...
PATH = 'content'
STATIC_PATHS = ['images', 'files']  # add any no. of locations
# ...

在这种情况下,当 Pelican 构建实际页面时,它将在 ./content/images./content/files 位置查找任何引用的静态文件。如果在那里找不到,它将发出错误消息。

现在,解决您的问题...

通过,

... src="./myImg1a.png" ...

Pelican 在您的 myBlog/content/ 文件夹中查找此 myImg1a.png 文件,因为您提到 ./ 这是 Pelican 的根文件夹.

但是,当您将其称为

... src="/myImg1a.png" ...

Pelican 最终在 html 文件的目录中找到它。通过获取 / 作为位置,Pelican 正在 myblog/my-blog-post/index.html 的同一目录中查找它,即 myblog/my-blog-post/.
因此,工作。但不是以理想的方式。

如需更深入的了解,请查看 Pelican 的文档 on this matter

  1. Why was the folder /category/myImg1a.png/index.html being sought at all?

Pelican,在这里,只是想变聪明。