HTTP 服务器:提供文件
在 Github 上编辑
一个提供文件服务的 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 --allow-net --allow-read https://docs.deno.org.cn/examples/scripts/http_server_files.ts