2

Pelican でブログを作成し始めたばかりで、画像にリンクしたいと考えていました。これを行うには、Markdown ファイルに次の行を含めます。

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

この行は、ペリカンが出力ディレクトリ (つまり/myBlog/output ) に配置した html ファイルで正常に再現されました。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直接または手動で変更しないでください。
すべての静的コンテンツを、通常はimagesまたはという名前の別のディレクトリに配置する必要がありますpaths。そして、パスを次のように構成しますpelicanconf.py

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

./content/imagesその場合、Pelican が実際のページを作成しているときに、参照されている静的ファイルを探します./content/files。そこに見つからない場合は、エラー メッセージが表示されます。

さて、お悩みにお応えして…

に、

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

Pelican作業中のルートフォルダーであることに言及しているので、フォルダー内でこのmyImg1a.pngファイルを探します。myBlog/content/./Pelican

しかし、あなたがそれを

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

Pelican最終的にhtmlファイルのディレクトリでそれを見つけます。/場所として取得することによりPelican、あなたの同じディレクトリでそれを探していmyblog/my-blog-post/index.htmlますmyblog/my-blog-post/
したがって、働く。しかし、理想的な方法ではありません。

より深く理解するには、この問題に関するPelican のドキュメントを参照してください。

  1. フォルダ /category/myImg1a.png/index.html が検索されたのはなぜですか?

Pelican、ここでは、賢くしようとしています。

于 2015-12-20T22:29:17.430 に答える