跳至主要内容

HTTP 服务器:提供文件

一个提供文件的 HTTP 服务器示例。

在 Github 上编辑
导入用于提供具有 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/http-server-files.ts