Skip to content
This repository has been archived by the owner on May 17, 2024. It is now read-only.

Commit

Permalink
feat: serving static files (#59)
Browse files Browse the repository at this point in the history
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
  • Loading branch information
lino-levan and kt3k committed Mar 6, 2023
1 parent 0adc9cd commit 2313da6
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
44 changes: 44 additions & 0 deletions data/http-server-files.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* @title HTTP Server: Serving Files
* @difficulty intermediate
* @tags cli, deploy
* @run --allow-net --allow-read <url>
* @resource {$std/http/mod.ts} Doc: std/http
* @resource {/http-server} Example: HTTP Server: Hello World
*
* An example of a HTTP server that serves files.
*/

// Import utility methods for serving files with mime types.
import { serveDir, serveFile } from "$std/http/file_server.ts";

// Import the http server from std/http.
import { serve } from "$std/http/server.ts";

// Here we start a simple server
serve((req: Request) => {
// Get the path from the url (ie. example.com/whatever -> /whatever)
const pathname = new URL(req.url).pathname;

if (pathname === "/simple_file") {
// In the most basic case we can just call this function with the
// request object and path to the file
return serveFile(req, "./path/to/file.txt");
}

if (pathname.startsWith("/static")) {
// We can also serve a whole directory using the serveDir utility
// method. By default it serves the current directory but this
// can be changed using the "fsRoot" option. We can use the "urlRoot"
// option to strip off the start of the url in the case we don't
// serve the directory at the top level.
return serveDir(req, {
fsRoot: "public",
urlRoot: "static",
});
}

return new Response("404: Not Found", {
status: 404,
});
});
1 change: 1 addition & 0 deletions toc.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export const TOC = [
"http-server",
"http-server-routing",
"http-server-streaming",
"http-server-files",
"tcp-listener",
"tcp-connector",
];

0 comments on commit 2313da6

Please sign in to comment.