首页 > 解决方案 > 将照片上传到 Jekyll html 中的页面

问题描述

我有一个基本的 jekyll 目录,如下所示:

├── 404.html
├── about.markdown
├── assets
│   └── img
│       ├── mapcolor360_dbc.png
│       └── SileHuPortrait.jpg
├── _config.yml
├── favicon.ico
├── Gemfile
├── Gemfile.lock
├── group-members.html
├── _includes
│   └── footer.html
├── index.markdown
├── _layouts
├── media.md
├── openings.md
├── _posts
│   └── 2019-12-18-welcome-to-jekyll.markdown
├── publications.md
├── research.html
├── research.md
├── _sass
│   └── _variables.scss
├── _site
│   ├── 404.html
│   ├── about
│   │   └── index.html
│   ├── assets
│   │   ├── img
│   │   │   ├── mapcolor360_dbc.png
│   │   │   └── SileHuPortrait.jpg
│   │   └── style.css
│   ├── favicon.ico
│   ├── feed.xml
│   ├── group-members
│   │   └── index.html
│   ├── index.html
│   ├── jekyll
│   │   └── update
│   │       └── 2019
│   │           └── 12
│   │               └── 18
│   │                   └── welcome-to-jekyll.html
│   ├── media
│   │   └── index.html
│   ├── openings
│   │   └── index.html
│   ├── publications
│   │   └── index.html
│   ├── research
│   │   └── index.html
│   └── software
│       └── index.html
└── software.md

我想将照片上传到group-members页面,使用 group-members.html 文件中的这一行:

<img src="/home/sam/Dropbox/Documents/PhD/hellenthal-group/assets/img/SileHuPortrait.jpg">

该图像肯定存在于目录中,但是当我尝试使用bundle exec jekyll serve

它返回错误

[2020-03-20 19:36:13] ERROR `/home/sam/Dropbox/Documents/PhD/hellenthal-group/assets/img/SileHuPortrait.jpg' not found.

并且图像显示为损坏。谁能帮我解决这个问题?

标签: htmljekyll

解决方案


我看到这SileHuPortrait.jpg实际上是<source>/assets/img根据您的目录结构在里面。

当 Jekyll构建您的站点时,生成的 URL 被假定用于 Web 服务器。因此,当您有类似的引用时/home/sam/Dropbox/Documents/..,网络服务器正在寻找/home/sam/Dropbox/Documents/..与您的目标目录(即_site文件夹)相关的内容。

您看到的错误是因为物理路径/home/sam/Dropbox/Documents/PhD/hellenthal-group/_site/home/sam/Dropbox/Documents/PhD/hellenthal-group/assets/img/SileHuPortrait.jpg 不存在。

因此,正确的用法是:

<img src="/assets/img/SileHuPortrait.jpg">

注意前导斜杠

baseurl:以上内容虽然正确,但在您在配置文件中设置时无法灵活地自动适应。


所以,最终的解决方案是使用relative_urlLiquid 过滤器

<img src="{{ 'assets/img/SileHuPortrait.jpg' | relative_url }}">

推荐阅读