0.0.2 • Published 2 years ago
astro-middleware-cn v0.0.2
Astro 中间件,解决中文 md 乱码问题
Bug 描述
在 Astro v3 中,在 pages 下创建 test.md 文件,生成 /test 的页面路由,astro dev 开发服务器下会导致中文乱码。
astro build 后,中文正常。
Bug 原因
产生此 Bug 的原因是 Astro v3 中未设置 Content-Type,导致浏览器无法正确解析中文。
请查看相关 issue:Astro v3 markdown page router Chinese get unreadable characters
解决方案
- 使用 Layout,在 Layout 中设置
<meta charset="utf-8" /> - 使用 Content Collections
- 使用此中间件
使用方法
从 npm 安装
npm install astro-middleware-cn在你的 middleware.ts 中使用
import { sequence } from "astro:middleware";
import { onRequest as cn } from 'astro-middleware-cn';
export const onRequest = sequence(cn);直接复制代码
创建 middleware.ts 文件,复制以下代码
import { defineMiddleware } from "astro:middleware";
export const onRequest = defineMiddleware(async (context, next) => {
const response = await next();
response.headers.set('Content-Type', 'text/html; charset=utf-8');
return response;
});请在 examples 文件夹查看 示例
关于中间件的更多信息,请查看 Astro 中间件文档
License
本项目使用 MIT License