Astro 中间件,解决中文 md 乱码问题 / Astro middleware used for Chinese md page.
MIT License
在 Astro v3 中,在 pages
下创建 test.md
文件,生成 /test
的页面路由,astro dev
开发服务器下会导致中文乱码。
astro build
后,中文正常。
产生此 Bug 的原因是 Astro v3 中未设置 Content-Type
,导致浏览器无法正确解析中文。
请查看相关 issue:Astro v3 markdown page router Chinese get unreadable characters
<meta charset="utf-8" />
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 中间件文档
本项目使用 MIT License