HTTP 服务器:文件服务
一个提供文件服务的 HTTP 服务器示例。
导入用于提供带 MIME 类型文件服务的实用方法。
import { serveDir, serveFile } from "jsr:@std/http/file-server";
这里我们启动一个简单的服务器
Deno.serve((req: Request) => {
从 URL 获取路径(例如:example.com/whatever -> /whatever)
const pathname = new URL(req.url).pathname;
if (pathname === "/simple_file") {
在最基本的情况下,我们可以直接使用请求对象和文件路径调用此函数
return serveFile(req, "./path/to/file.txt");
}
if (pathname.startsWith("/static")) {
我们还可以使用 serveDir 实用方法提供整个目录的服务。默认情况下,它提供当前目录的服务,但可以使用 "fsRoot" 选项进行更改。我们可以使用 "urlRoot" 选项来剥离 URL 的起始部分,以防我们不将目录服务于顶层。
return serveDir(req, {
fsRoot: "public",
urlRoot: "static",
});
}
return new Response("404: Not Found", {
status: 404,
});
});
使用 Deno CLI 在本地运行此示例
deno run -N -R https://docs.deno.org.cn/examples/scripts/http_server_files.ts