通过“类别”查看文章时鹈鹕图像链接中断

时间:2015-06-12 03:34:42

标签: python pelican

我确信我错过了一些明显的东西。我通过内容文件夹中的文件夹名称定义类别。如果我在查看页面时单击content,我会看到文件夹名称(例如,categories1,categ2)加上'misc',这很好。当我单击categ1时,我看到一篇完整的文章,但图像链接现在都已损坏。

localhost:8000/category/categ1.html

我希望看到的只是该类别中可点击的文章列表。或者至少,没有破坏链接。

(如果我尝试使用标签,我会有类似的行为,但一次只有一件事......)

.rst个文件中没有类别行。

除了名称,时区等。我在配置中使用这些。

更新:图片位于内容的图片文件夹中。我还在Categ1中放了一个Images文件夹,但没有帮助。

THEME = 'nmnlist' 

PATH = 'content'

# ARTICLE_PATHS = ['articles']    # have tried this also

STATIC_PATHS = ['images', 'pdfs']

RELATIVE_URLS = True  # have tried False also

PLUGINS = ["render_math"]

2 个答案:

答案 0 :(得分:2)

听起来这可能是图片网址相对的问题。

问题

如果是这种情况,假设您在content/mypage.md中有一个生成为localhost:8000/mypage.html的Markdown页面,并且它对图像有一个(工作)引用:

![Alt text](content/myimage.png)

呈现为html:

<img src="content/myimage.png" />

并指向localhost:8000/content/myimage.png。但是,如果您尝试将相同的Markdown处理为类别页面的HTML,它将呈现相同的图像降价:

![Alt text](content/myimage.png)

进入相同的html:

<img src="content/myimage.png" />

但由于这是在localhost:8000/categories/mycategory.html的类别页面上,因此此相对图片网址现在指向localhost:8000/categories/content/myimage.png,并且图片在类别和标签页上已损坏。

解决方案

解决方案很简单:一个/。在Markdown中使用/作为前缀的绝对引用,而不是content/myimage.png,请使用/content/myimage.png

![Alt text](/content/myimage.png)

这将始终在localhost:8000/content/myimage.png处呈现图片,无论图片位于何处。

答案 1 :(得分:1)

content - 文件夹是输入端。应用pelican pelicanconfig.py - 命令后,将在output - 文件夹中生成输出端。我认为渲染的任何方法都必须适合输出端。我使用content/images - 文件夹,pelican pelicanconfig.py - 命令将其完全复制到output/images - 文件夹。

我不得不修改建议的解决方案。使用我的文件夹结构,当我在md文件中设置时,它适用于我:

![png5](../images/image5.png)

使用..,我们从后文件夹中获得更高级别的输出文件夹,并从那里到达images-folder。

附录: 我已经详细阐述了一个不同的解决方案here,该解决方案适用于 Pelican 3.5 以及之后。