跳转至内容
There is a version suitable for your browser's language settings. Would you like to go to the english language of the site?
主页文档

静态服务

H1

我们有时希望前后端部署在一起。这样,在一个域名下,我们就可以在提供服务的同时提供网页访问。

此功能目前支持 Bun,对于其他的运行时,欢迎提交 PR 来使 Milkio 兼容。

安装

终端窗口
bun i milkio-static

然后使用它:

/milkio.ts
import { createMilkioApp } from "milkio";
import { milkioStatic } from "milkio-static";
export const milkio = createMilkioApp({
middlewares: () => [
milkioStatic()
],
});

创建一个 /public 目录,现在,这个目录下的所有资产都会被静态服务所提供了。写一个打招呼的网页吧!

/public/index.html
<!DOCTYPE html>
<html>
<body>Hello World!</body>
</html>

访问 http://localhost:9000/,就可以看到这个网页了。

页面不存在时

当页面不存在时,静态服务会返回 404 状态码并展示你的 /public/404.html

如果此文件不存在,那么将展示默认的 JSON 形式的结果。

配置

你可以通过传入参数,来修改静态服务的默认值。

milkioStatic({
assets: 'static', // 默认: 'public'
index: 'main.html', // 默认: 'index.html'
notFound: 'not-found.html', // 默认: '404.html'
headers: { 'X-Foo': 'bar' } // 默认: {}
})

缓存

设置良好的缓存策略,可以有效减轻你网站的负载。

默认情况下,对于访问有效的静态资产,会通过添加 Cache-Control 头来使其缓存 30 分钟。如果你想修改这个时长,可以像下面这样。

milkioStatic({
headers: { 'Cache-Control': 'public, max-age=3600' }
})

当然,更有效的办法,是使用 CDN 服务,来缓存你的静态资源。例如 Cloudflare。