2

我刚开始用 Pelican 创建一个博客,并想链接到一个图像。我通过在我的 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文件夹?

4

1 回答 1

3

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

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

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

现在,回答你的麻烦...

经过,

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

Pelican当您提到哪个是正在处理的根文件夹时,myImg1a.png在您的文件夹中查找此文件。myBlog/content/./Pelican

但是,当您将其称为

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

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

如需更深入的了解,请查看 Pelican关于此问题的文档。

  1. 为什么要寻找 /category/myImg1a.png/index.html 文件夹?

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

于 2015-12-20T22:29:17.430 回答