问题
I'm just starting to create a blog with Pelican and wanted to link to an image. I did this by including the following line in my Markdown file:
<img src="./myImg1a.png" alt="./myImg.png" style="width: 750px; height: 800px;"/>
This line was successfully reproduced in the html file, which Pelican placed in the output directory (i.e. /myBlog/output). I placed the png files in the output directory (i.e. the same directory as the html files and got the following error:
WARNING:root:Unable to find file /category/myImg1a.png/index.html or variations.
where /category refers to myBlog/output/category. When I, instead, used the following html code:
<img src="/myImg1a.png" alt="/myImg.png" style="width: 750px; height: 800px;"/>
everything worked fine. I don't understand why this should be:
If the image file is in the same directory as the html file, shouldn't "./myImg1.png" be correct and "/myImg.png" be incorrect?
Why was the folder /category/myImg1a.png/index.html being sought at all?
回答1:
First of all, by design, you should not change the contents of the output
directly/manually.
You should put all your static contents in separate directory which is usually named as images
or paths
. And, then configure the path(s) in pelicanconf.py
as:
# ...
PATH = 'content'
STATIC_PATHS = ['images', 'files'] # add any no. of locations
# ...
In that case, when Pelican is building actual page, it will look for any referenced static file in ./content/images
and ./content/files
locations. If cannot find there, it will emit the error message.
Now, answering to your trouble ...
By,
... src="./myImg1a.png" ...
Pelican
look for this myImg1a.png
file in your myBlog/content/
folder as you are mentioning ./
which is the root folder for Pelican
is working on.
But, when you are referring it as
... src="/myImg1a.png" ...
Pelican
eventually finds it in the html
file's directory. By getting /
as location, Pelican
is looking for it in the same directory of your myblog/my-blog-post/index.html
which is myblog/my-blog-post/
.
Hence, working. But not in the ideal way.
For a deeper understanding, please take a look into Pelican's documentation on this matter.
- Why was the folder /category/myImg1a.png/index.html being sought at all?
Pelican
, here, just trying to be smart.
来源:https://stackoverflow.com/questions/28257113/what-is-the-correct-way-to-express-a-path-in-order-to-get-pelican-generated-html