【问题标题】:What is the correct way to express a path in order to get Pelican generated html to link to an image?为了让 Pelican 生成的 html 链接到图像,表达路径的正确方法是什么?
【发布时间】:2015-01-31 22:13:06
【问题描述】:

我刚开始使用 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

【问题讨论】:

  • 你找到这个问题的答案了吗?
  • @Raj - 不,我没有。现在,我只需要获得超过 15 个字符的评论,它就会发布.....
  • 谢谢!有时我们必须做的事情才能使系统正常工作......

标签: html pelican


【解决方案1】:

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

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

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

现在,回答你的问题……

作者,

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

PelicanmyBlog/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. 为什么要搜索文件夹 /category/myImg1a.png/index.html?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多