目录

图片相关配置

关于博客网站图片的所有知识

1.主页显示的文章的封面图片相关配置

1.1 文章的图文在一个目录结构且文章文件名为index开头,.md结尾时:

文章的图文在一个目录结构

封面图使用的代码配置:

resources:                                # resources字段用于定义页面资源,包括特色图片
- name: "featured-image"                  # 定义文章内显示的特色图片资源      
  src: "featured-image.webp"              # 文章内显示的封面大图路径 
- name: "featured-image-preview"          # 定义主页列表页显示的特色图片预览资源(通常为缩略图)
  src: "featured-image-preview.webp"       # 主页显示的封面小图缩略图路径

1.2

   文章的封面图路径为X:\oklifeme\content\posts\Code Art Studio\windows_software_guide\images\xxx.webp
   文章的文件路径为  X:\oklifeme\content\posts\Code Art Studio\windows_software_guide\index.zh-cn.md

无论加不加“/images/”都无法显示,必须如上1.1和index.zh-cn.md文件在同一目录下,才能正常显示

- name: "/images/featured-image"                # 定义文章内显示的特色图片资源      
  src: "/images/featured-image.webp"            # 文章内显示的封面大图路径 
- name: "/images/featured-image-preview"        # 定义主页列表页显示的特色图片预览资源(通常为缩略图)
  src: "/images/featured-image-preview.webp"     # 主页显示的封面小图缩略图路径

1.3 文章的图文不在一个目录结构

   文章的封面图路径为X:\oklifeme\static\images\xxx.webp
   文章的文件路径为:X:\oklifeme\content\posts\willpower\20250926-day1-01
封面图路径为assets

封面图使用的代码配置:无需特定文件名

featuredImagePreview: "/images/20250926-day1-01.webp"       # 定义主页列表页显示的特色图片预览资源(通常为缩略小图)
featuredImage: "/images/20250926-day1-01.webp"              # 定义文章内显示的封面大图

2.文章内的插图相关设置

2.1 文章的图文在一个目录结构且文章文件名为index开头,.md结尾时:

2.1.1 html语法:

图文一个目录插图 插图使用的代码配置:实际效果⬆👆
<img src="image loading3.webp" alt="图文一个目录插图" loading="lazy" style="width:100%; height:auto; border-radius:8px;">

2.1.2 markdown语法:

注意使用markdown语法时,文件名有空格即使用"“了任然无法显示图片

![图文一个目录插图]("image loading3.webp")

实际显示效果⬇👇:

![图文一个目录插图](“image loading3.webp”)

  • 正确用法1:注意文件名用了-连接
![图文一个目录插图](image-loading3.webp)

/2025/11/03/code-art-studio/image-loading/image%20loading3.webp

  • 正确用法2:注意文件名用了_连接
![图文一个目录插图](Chinese_Beauty.webp)

/2025/11/03/code-art-studio/image-loading/Chinese_Beauty.webp

2.2 文章的图文不在一个目录结构

   文章的插画图路径为P:\oklifeme\content\posts\Code Art Studio\image\image-loading\images\Chinese-Beauty-1200.webp
   文章的文件路径为  P:\oklifeme\content\posts\Code Art Studio\image\image-loading\index.zh-cn.md
![图在images目录](/images/Chinese-Beauty-1200.webp)

/2025/11/03/code-art-studio/image-loading/images/Chinese-Beauty-1200.webp

2.3 文章的图文不在一个目录结构

   文章的插面图路径为X:\oklifeme\static\images\xxx.webp
   文章的文件路径为  X:\oklifeme\content\posts\Code Art Studio\image\image-loading\index.zh-cn.md

2.3.1 shortcode用法:用于 lightgallery(used for lightgallery),即画廊模式。

{没这字{< image src="/images/post-end/night-rain-lamp-1200.webp" alt="文尾配图水墨画图片" caption="" src_s="/images/post-end/night-rain-lamp-800.webp" src_l="/images/post-end/night-rain-lamp-1600.webp" width="100%" >}}

参数逐项分析:

参数:src

写法:/images/post-end/night-rain-lamp-1200.webp

含义:✅ 必填项,已提供 默认图片路径(通常为中图)


参数:alt

写法:“文尾配图水墨画图片”

含义:✅ 描述清晰,符合规范

作用: alt(Alternative Text,替代文本)并非只是"图片挂了才显示"这么简单,它实际上承担三个层面的作用 : ​

1-图片加载失败时的降级显示:网络异常或路径错误时,浏览器在图片位置展示 alt 文本,让读者知道这里原本是什么内容

2-无障碍访问(Accessibility):屏幕阅读器会朗读 alt 文本,视障用户依赖它理解页面图片含义,这也是很多国家网站合规性的要求

3-SEO 优化:搜索引擎爬虫无法"看图”,靠 alt 文本理解图片内容并进行索引,合理填写能提升图片搜索排名

在 LoveIt 中,alt 还支持 Markdown 和 HTML 格式,且若省略,默认值会回退为 src 的路径字符串 ——所以写一段有意义的描述比留空或不写要好得多。


参数:src_s

写法:night-rain-lamp-800.webp

含义:✅ 画廊缩略图,尺寸合理 小尺寸图片路径


参数:src_l

写法:night-rain-lamp-1600.webp

含义:✅ 画廊高清图,尺寸合理 大尺寸图片路径


参数:caption=""

写法:空字符串

含义:⚠️ 多余但无害 图片标题/说明文字 显示在图片下方


参数:width=“100%”

写法:百分比值

含义:✅ LoveIt 支持百分比宽度


全部可用参数汇总

基于官方文档,LoveIt image shortcode 的完整参数如下

参数必填默认值说明
src✅ 必需图片 URL(第1位置参数)
alt可选src 的值替代文本,支持 Markdown/HTML
caption可选图片标题,显示在图下方,支持 Markdown/HTML(第3位置参数)
title可选鼠标悬停时的 tooltip 提示
class可选
标签的 CSS class
src_s可选src 的值画廊模式缩略图 URL
src_l可选src 的值画廊模式高清图 URL
width可选图片宽度
height可选图片高度(建议填像素值)
linked可选true是否为图片添加链接(启用 lightGallery)
rel可选标签的 rel 属性,仅 linked=true 时有效
  • caption="" 的问题 空字符串的 caption 会在模板中渲染出一个空的 < figcaption> 标签,虽然视觉上不可见,但属于冗余 HTML。如果不需要标题,直接省略该参数即可。

什么是画廊模式?

目的:当用户点击图片时,弹出一个灯箱(lightbox)效果,可以查看高清大图、左右切换、缩略图导航等。

实现方式:LoveIt 主题集成了 lightGallery 库。src_s 用于画廊底部导航的缩略图,src_l 用于点击后展示的高清大图。

代码的作用:我们写的 src_s 和 src_l 参数,正确地为画廊功能提供了缩略图和高清图,但它们并不会让浏览器在加载页面时自动选择加载哪张图。页面加载时,始终加载的是 src 指定的那张中图(1200px)。

实际效果⬇👇

文尾配图水墨画图片

已测试 class 无效,实际效果和下方一样

{{< style ".rounded-img img { border-radius: 8px; }" >}}
{{< image src="/images/post-end/night-rain-lamp-1200.webp"
          alt="文尾配图水墨画图片"
          src_s="/images/post-end/night-rain-lamp-800.webp"
          src_l="/images/post-end/night-rain-lamp-1600.webp"
          width="100%"
          class="rounded-img" >}}
{{< /style >}}

实际效果⬇👇

文尾配图水墨画图片

另一种写法:

{没这字{< image src="/images/post-end/night-rain-lamp-1200.webp"
          alt="文尾配图水墨画图片"
          src_s="/images/post-end/night-rain-lamp-800.webp"
          src_l="/images/post-end/night-rain-lamp-1600.webp"
          width="100%" >}}

实际效果⬇👇一样的

文尾配图水墨画图片

如果只想要图片宽度自适应父容器,不需要画廊功能,只用 src 指定一张图即可。

{没这字{< image src="/images/post-end/night-rain-lamp-1200.webp" alt="文尾配图水墨画图片" width="100%" >}}

实际效果⬇👇

文尾配图水墨画图片

2.3.2 html语法:

<img src="/images/post-end/night-rain-lamp-1200.webp" alt="文尾配图水墨画图片" loading="lazy" style="width:100%; height:auto; border-radius:8px;">

实际效果⬇👇

文尾配图水墨画图片

2.3.3 markdown语法:

![图文不在一个目录插图](/images/post-end/mxz-weixin-mp-1600.webp)

实际效果⬇👇

/images/post-end/mxz-weixin-mp-1600.webp

3.文章内的图片我都已经转成.webp格式了,尺寸多大最优?

我们已经把图片转为 .webp 格式,这一步对性能提升非常大。接下来要确定图片尺寸,核心原则是:在保证清晰度的前提下,选择足够小的尺寸

对于以文字内容为主的博客,图片通常不需要像摄影作品那样大尺寸。以下是针对我们博客场景的具体建议:

3.1 核心建议:内容图片宽度

  • 默认宽度:1200像素

    • 这是目前最推荐的值。它足够覆盖绝大多数电脑屏幕(包括高分屏)的显示需求,不会因为过大而浪费流量,也能确保在移动设备上通过缩放看得很清楚。
  • 最小宽度:800像素

    • 如果我们特别在意节省流量,或文章里图片非常多,这个宽度在普通屏幕和手机上看也足够清晰。
  • 最大宽度:1600像素

    • 仅当我们预计读者会用超大屏幕(如 4K 显示器)并希望图片拉满屏幕边缘依然锐利时考虑。对于文字为主的博客,通常不需要

简单来说:1200像素宽是一个安全、高效、不会出错的选择。

3.2 不同场景的精细建议

我们可以根据图片在文章中的角色来微调:

  • 普通配图:宽度 1200px 最佳,平衡了清晰度和加载速度。

  • 全屏封面图:如果我们在文章开头设置了大图,宽度可以设置为 1600px,确保大屏设备的视觉冲击力。

  • 含文字的截图:如果图片里有小号文字需要看清(比如代码截图、微信聊天记录),宽度建议设置为 1600px-2000px,并适当提高 JPG/WebP 的画质质量(quality) 到 85-90%,防止文字模糊。


3.3 实现响应式图片的功能(高级技巧)

如果我们想让性能更进一步,可以为一张图片准备多个尺寸,让浏览器根据用户设备自动选择最合适的那一个。这就是 srcset 技术。

我们可以为同一张图片准备 小图:image-800.webp(宽 800px)(适用于手机)、中图:image-1200.webp(宽 1200px)(适用于平板/笔记本)、大图:image-1600.webp(宽 1600px)(适用于大屏显示器)三个版本,然后在 Hugo 的文章模板中利用短代码来输出相应的 HTML 代码。

3.3.1 响应式图片HTML语法

<img src="/images/post-end/night-rain-lamp-1200.webp"
     srcset="/images/post-end/night-rain-lamp-800.webp 800w,
             /images/post-end/night-rain-lamp-1200.webp 1200w,
             /images/post-end/night-rain-lamp-1600.webp 1600w"
     sizes="(max-width: 600px) 800px, (max-width: 1200px) 1200px, 1600px"
     alt="文尾配图水墨画图片"
     loading="lazy"
     style="width:100%; height:auto; border-radius:8px;">

这段代码是完全正确的响应式图片写法! 🎉

HTML 使用了 srcset 和 sizes 属性,这正是现代网页实现响应式图片的标准方法。它的工作原理是:

srcset 列出了三个不同宽度(800w、1200w、1600w)的图片版本。

sizes 告诉浏览器:当视口宽度 ≤600px 时,图片宽度按 800px 处理;当视口宽度 ≤1200px 时,按 1200px 处理;更大则按 1600px 处理。

浏览器会根据实际屏幕尺寸、网络状况等因素,自动选择最合适的图片加载,实现真正的按需加载。

这与 LoveIt 主题 image shortcode 中的 src_s/src_l 完全不同:后者只用于点击后的画廊模式,不影响页面初次加载的图片选择。


如果我们希望保留点击图片放大查看的功能,可以在这段 外面包裹一个指向大图的链接:

href="/images/post-end/night-rain-lamp-1600.webp" class="lightgallery">

下面是完整的、保留点击放大功能的响应式图片代码,我们可以直接复制到文章中使用:

<a href="/images/post-end/night-rain-lamp-1600.webp" class="lightgallery">
    <img src="/images/post-end/night-rain-lamp-1200.webp"
         srcset="/images/post-end/night-rain-lamp-800.webp 800w,
                 /images/post-end/night-rain-lamp-1200.webp 1200w,
                 /images/post-end/night-rain-lamp-1600.webp 1600w"
         sizes="(max-width: 600px) 800px, (max-width: 1200px) 1200px, 1600px"
         alt="文尾配图水墨画图片"
         loading="lazy"
         style="width:100%; height:auto; border-radius:8px;">
</a>

⚙️ 需要提前确认的事项

  1. lightGallery 必须在主题中启用
    请打开我们的 hugo.toml,检查是否有以下配置(如果没有,请添加):

    [params.page]
      lightgallery = true

    这会让 LoveIt 主题加载 lightGallery 所需的 JavaScript 和 CSS。

  2. 图片路径必须正确
    请确保 /images/post-end/night-rain-lamp-1600.webp 这张高清大图确实存在,且路径与代码一致。

效果说明

  • 页面加载时,浏览器会根据屏幕宽度自动选择最合适的图片(800w/1200w/1600w)。
  • 点击图片后,会弹出 lightGallery 灯箱,显示 1600.webp 高清大图,支持缩放、滑动等(如果有多张图片,还可以左右切换)。
  • 图片自带圆角和懒加载,性能友好。

实际效果⬇👇带点击放大功能

文尾配图水墨画图片

实际效果⬇👇不带点击放大功能

文尾配图水墨画图片


3.3.3 建议结合之前讨论的尺寸优化

我们之前已经确定图片宽度用 1200px 作为默认值,那么可以:

保留一张 1200px 的图,只用 src 参数(最简单)。

如果想更精细优化,可以再生成一张 800px 的小图(给手机用)和一张 1600px 的大图(给大屏用),然后用 shortcode 的 src_s 和 src_l 分别指定。

生成多尺寸图片可以用工具批量处理(如 ImageMagick、在线转换工具),命名规范建议统一为:

纯英文图片名-800.webp
纯英文图片名-1200.webp
纯英文图片名-1600.webp

然后在 shortcode 中对应填写。

3.3.4 注意事项

文件路径:所有图片最好放在 Hugo 项目的 static/images/ 目录下,方便统一管理。 放在文章目录下也可以,但是后期文章及图片多了不好管理。

shortcode 中的路径要以 / 开头。

文件实际存在:务必确认对应路径下确实有该文件,否则会 404。

caption 可选:不需要说明文字时留空即可(caption="")。

我们现在可以根据自己的需求决定:

如果只想简单使用,只用 src 参数。

如果想实现响应式,为同一图片准备三个尺寸,并正确填写参数。

3.4 总结

  • 尺寸:文章内图片宽度统一为 1200像素,高度自适应。这是最高效的选择。

  • 格式:我们已经用了最棒的 .webp

  • 行动:我们可以批量处理现有图片,并作为后续新文章的创作规范。

4.图片文件名用中文好还是全英文好还是可用混合用?

这是一个很好的细节问题。对于图片文件名,强烈推荐使用全英文(或英文+数字+连字符),尽量避免使用中文。

主要有以下几个技术原因和最佳实践考量:

4.1 URL 编码与可读性

  • 中文会被转码:如果文件名包含中文,在生成网页 URL 时,浏览器和服务器会自动将其转换为 % 加上两位十六进制码的格式。
    • 例如 思绪开始流淌.webp 会变成 %E6%80%9D%E7%BB%AA%E5%BC%80%E5%A7%8B%E6%B5%81%E6%B7%8C.webp
  • 后果:这样的 URL 变得非常长且难以阅读、记忆,也无法从链接上判断图片内容。

4.2 跨平台与工具兼容性

  • 系统差异:虽然现代操作系统和 Web 服务器对中文的支持已经很好,但在某些老旧系统、特定 CDN 边缘节点或命令行工具(如 Git、Wget、Curl)中,中文文件名有时仍可能引发意想不到的编码错误。
  • Git 行为:在 Git 中,中文文件名在终端输出时可能会被转义(虽然可以配置),但对于团队协作或自己长期维护,全英文文件名会让操作日志更清晰。

4.3 SEO(搜索引擎优化)微弱影响

  • 关键词权重:虽然图片的文件名对 SEO 的直接影响很小,但搜索引擎会读取文件名作为理解图片内容的辅助信号。一个包含关键词的英文文件名(如 night-rain-debt-struggle.webp)比一串乱码(%E6%80%9D%E7%BB%AA%E5%BC%80...)更友好。不过,这个因素远不如图片的 alt 属性重要。

4.4 最佳实践格式建议

综合来看,一个理想的图片文件名格式是: 关键词-描述-序号.后缀

  • 使用小写字母:避免大小写混淆导致的 404 错误(Linux 服务器区分大小写)。
  • 使用连字符 - 分隔单词:这是 URL 中最常用的分隔符,比下划线 _ 更利于 SEO(Google 明确推荐)。
  • 只包含字母、数字和连字符

示例对比

  • ❌ 不推荐:思绪开始流淌.webp
  • ❌ 不推荐:%E6%80%9D%E7%BB%AA%E5%BC%80%E5%A7%8B%E6%B5%81%E6%B7%8C.webp(实际 URL 中的样子)
  • ✅ 推荐:thoughts-begin-to-flow.webp

4.5 针对我们博客的建议

结合我们之前的调整,可以考虑建立一个简单的命名规范:

  1. 分类前缀:对于系列文章,可以加上前缀,如 debt-day1-序章-夜雨孤灯.webp -> 建议改为 debt-day1-prologue-night-rain.webp
  2. 内容描述:用 2-3 个英文单词概括图片内容。
  3. 统一管理:在我们本地的 static/images/ 目录下,可以保留原始中文名备份,但对外提供服务的文件,建议全部采用规范化的英文名。

如果我们有大量图片需要重命名,可以使用一些批量重命名工具(如 Advanced Renamer、PowerToys PowerRename 或简单的脚本)来快速完成。更新文件名后,记得同时更新 Markdown 文章中的图片链接。


图片设置相关文章:

手把手教程:让 Hugo LoveIt 主题文章图片自适应宽度 + 点击放大高清图

Hugo LoveIt 主题图片圆角终极解决方案:从踩坑到完全生效


–全文完–

感谢阅读

“同频之人,终会相遇;同行之路,终有光亮。”

若你有故事想讲、有困惑想聊、或是想找个人说说心里话,甚至只是吐槽发泄一下情绪,都欢迎来找我聊聊:

微信公众号:

梦行志微信公众号

私人微信号(有验证):oklife_1314

梦行志个人微信二维码

我的邮箱📫:hero@oklife.me


希望我写的每一个字,成为我自己和某个人活下去、拼下去的力量。

“技术终归是工具,而我们一次次认真把问题理顺,守住的其实不只是页面样式和代码输出,还有那一点不愿被混乱打败的心气,是每一个深夜仍愿点灯前行的人。”

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自https://oklife.me。

文尾配图水墨画图片