Markdown 图片使用指南
· BlogAI
#Markdown
#Images
#Tutorial
Markdown 图片使用指南
本文介绍如何在 Astro 博客中管理和使用图片。
图片存储结构
推荐的图片存储方式:
src/content/blog/
├── images/ # 所有博客图片统一存放
│ ├── earth.png
│ ├── example.jpg
│ └── diagram.svg
├── article-1.md
├── article-2.md
└── markdown-images-guide.md
方法一:相对路径引用(推荐)
在 Markdown 中使用相对路径引用图片:

实际效果:

优点
- ✅ 简单直观
- ✅ 图片和文章一起管理
- ✅ 自动优化(Astro 会处理)
- ✅ 支持版本控制
缺点
- ❌ 图片会被打包到构建产物中
- ❌ 大图片会增加构建时间
方法二:public 目录(静态资源)
将图片放在 public/ 目录:
public/
└── images/
└── logo.png
在 Markdown 中引用:

优点
- ✅ 不经过构建处理,直接复制
- ✅ 适合大量静态图片
- ✅ 可以被外部直接访问
缺点
- ❌ 不会被优化
- ❌ 路径必须以
/开头
方法三:使用 Astro 的 Image 组件
在 .astro 文件中使用 Image 组件获得最佳性能:
---
import { Image } from 'astro:assets';
import myImage from '../content/blog/images/earth.png';
---
<Image src={myImage} alt="地球" width={800} height={600} />
优点
- ✅ 自动优化(WebP、AVIF)
- ✅ 响应式图片
- ✅ 懒加载
- ✅ 最佳性能
图片优化建议
1. 图片格式选择
- 照片:JPEG/WebP
- 图标/Logo:SVG/PNG
- 截图:PNG
- 动画:GIF/WebP
2. 图片大小
# 使用 ImageMagick 压缩
magick input.jpg -quality 85 output.jpg
# 使用 TinyPNG API
npx tinify input.png
3. 响应式图片
在 Markdown 中使用 HTML:
<picture>
<source srcset="./images/earth.webp" type="image/webp">
<img src="./images/earth.png" alt="地球" loading="lazy">
</picture>
图片命名规范
推荐的命名方式:
✅ 好的命名
- hero-banner.png
- user-avatar-john.jpg
- diagram-architecture.svg
❌ 不好的命名
- IMG_1234.jpg
- 屏幕截图.png
- image (1).png
图片 Alt 文本
始终为图片添加有意义的 alt 文本:
<!-- ❌ 不好 -->

<!-- ✅ 好 -->

CDN 加速(可选)
对于大量图片,可以使用 CDN:
使用 Cloudflare Images

使用 imgix

图片懒加载
在 Markdown 中使用 HTML 实现懒加载:
<img src="./images/earth.png" alt="地球" loading="lazy" width="800" height="600">
完整示例
下面是一个包含多种图片使用方式的示例:
标题图片

内联图片
这是一段文字,其中包含一个小图标
在文字中间。
带链接的图片
图片说明
部署注意事项
1. 构建时
npm run build
Astro 会:
- 优化
src/中引用的图片 - 复制
public/中的文件到dist/ - 生成响应式图片变体
2. Docker 部署
确保 Dockerfile 包含图片:
# 复制所有源文件(包括图片)
COPY . .
# 构建会处理图片
RUN npm run build
3. Git LFS(大文件)
如果有大量大图片,使用 Git LFS:
# 安装 Git LFS
git lfs install
# 追踪图片文件
git lfs track "*.png"
git lfs track "*.jpg"
# 提交
git add .gitattributes
git commit -m "Add Git LFS"
性能检查清单
- 图片已压缩
- 使用了适当的格式
- 添加了 alt 文本
- 大图片使用懒加载
- 考虑使用 CDN
- 响应式图片(多尺寸)
总结
推荐方案:
- 博客配图:放在
src/content/blog/images/,使用相对路径 - 网站资源:放在
public/images/,使用绝对路径 - 需要优化:在
.astro文件中使用<Image>组件
这样可以获得最佳的性能和管理体验!