Skip to content

liruifengv/astro-middleware-cn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Astro 中间件,解决中文 md 乱码问题

version PRs Welcome license downloads

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

解决方案

使用方法

从 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

About

Astro 中间件,解决中文 md 乱码问题 / Astro middleware used for Chinese md page.

Resources

License

Stars

Watchers

Forks