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://deno-docs.dev.org.tw/examples/scripts/http_server_files.ts