What is the purpose of serving static files in a web server?
Serving static files means delivering files like images, CSS, or JavaScript directly to the browser without changes. It helps show website content quickly and efficiently.
Click to reveal answer
beginner
In Deno, which module is commonly used to serve static files?
The std/http/file_server.ts module is commonly used in Deno to serve static files easily with built-in support for directories and caching.
Click to reveal answer
intermediate
How do you specify the folder to serve static files from in Deno's file server?
You provide the folder path as an argument to the file server function, for example: serveDir(req, { fsRoot: './public' }) serves files from the public folder.
Click to reveal answer
beginner
What HTTP status code does a static file server usually return when a file is not found?
It returns 404 Not Found to tell the browser the requested file does not exist on the server.
Click to reveal answer
intermediate
Why is it important to use caching headers when serving static files?
Caching headers tell browsers to save files locally for some time. This reduces loading time and server work when users visit again.
Click to reveal answer
Which Deno module helps serve static files easily?
Astd/path/mod.ts
Bstd/fs/mod.ts
Cstd/http/server.ts
Dstd/http/file_server.ts
✗ Incorrect
The file_server.ts module is designed specifically for serving static files.
What happens if a requested static file does not exist on the server?
AServer returns 200 OK with empty content
BServer returns 404 Not Found
CServer redirects to homepage
DServer crashes
✗ Incorrect
The server returns a 404 status to indicate the file was not found.
Why should static files be cached by browsers?
ATo reduce loading time and server requests
BTo slow down page loading
CTo increase server load
DTo prevent file access
✗ Incorrect
Caching reduces repeated downloads, speeding up page loads and lowering server work.
Which folder is commonly used to store static files in a Deno project?
Abin
Bsrc
Cpublic
Dconfig
✗ Incorrect
The public folder is a common convention for static files.
What type of files are considered static files?
AHTML, CSS, images, JavaScript
BDatabase files
CServer logs
DCompiled binaries
✗ Incorrect
Static files include content like HTML, CSS, images, and JavaScript that do not change dynamically.
Explain how to serve static files in a Deno web server.
Think about the module and folder you use to serve files.
You got /4 concepts.
Why is caching important when serving static files?
Consider what happens when a browser saves files locally.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of serving static files in a Deno web server?
easy
A. To send images, styles, and scripts to the user's browser
B. To execute server-side scripts dynamically
C. To connect to a database and fetch data
D. To compile TypeScript files on the server
Solution
Step 1: Understand what static files are
Static files include images, CSS stylesheets, and JavaScript files that do not change dynamically.
Step 2: Identify the purpose of serving static files
Serving static files means sending these files from the server to the user's browser so the webpage looks and works correctly.
Final Answer:
To send images, styles, and scripts to the user's browser -> Option A
Quick Check:
Static files = images, styles, scripts [OK]
Hint: Static files are fixed resources sent to browsers [OK]
Common Mistakes:
Confusing static files with dynamic server code
Thinking static files run on the server
Mixing static files with database operations
2. Which of the following is the correct way to import the function to serve static files in Deno?
easy
A. import { serveFile } from "https://deno.land/std/fs/mod.ts";
B. import { serveFile } from "https://deno.land/std/http/server.ts";
C. import { serveFile } from "https://deno.land/std/http/file.ts";
D. import { serveFile } from "https://deno.land/std/http/file_server.ts";
Solution
Step 1: Identify the correct module for serving static files
The function serveFile is provided by the file.ts module in Deno's standard HTTP library.
Step 2: Match the import path
The correct import path is "https://deno.land/std/http/file.ts" for serveFile.
Final Answer:
import { serveFile } from "https://deno.land/std/http/file.ts"; -> Option C
Quick Check:
serveFile import = file.ts [OK]
Hint: serveFile comes from file.ts in std/http [OK]
Common Mistakes:
Using server.ts instead of file.ts
Importing from fs module incorrectly
Wrong URL path for the import
3. Given this Deno server code snippet, what will be the response when a user requests /image.png?
import { serve } from "https://deno.land/std/http/server.ts";
import { serveFile } from "https://deno.land/std/http/file_server.ts";
serve(async (req) => {
const url = new URL(req.url);
if (url.pathname === "/image.png") {
return await serveFile(req, "./static/image.png");
}
return new Response("Not Found", { status: 404 });
});
medium
A. The server throws a runtime error because serveFile is used incorrectly
B. The server sends the file located at ./static/image.png to the user
C. The server returns a 404 Not Found response
D. The server sends an empty response with status 200
Solution
Step 1: Check the URL path condition
The code checks if the requested path is exactly "/image.png".
Step 2: Understand serveFile usage
If the path matches, serveFile sends the file "./static/image.png" as the response.
Final Answer:
The server sends the file located at ./static/image.png to the user -> Option B
Quick Check:
Path matches "/image.png" so serveFile sends file [OK]
Hint: Check URL path then serveFile sends matching file [OK]
Common Mistakes:
Assuming 404 is returned for existing path
Thinking serveFile causes error here
Ignoring the URL pathname check
4. Identify the error in this Deno code snippet for serving a static CSS file:
import { serve } from "https://deno.land/std/http/server.ts";
import { serveFile } from "https://deno.land/std/http/file_server.ts";
serve(async (req) => {
const url = new URL(req.url);
if (url.pathname = "/style.css") {
return await serveFile(req, "./static/style.css");
}
return new Response("Not Found", { status: 404 });
});
medium
A. The server function is not awaited
B. serveFile is missing an await keyword
C. The import path for serveFile is incorrect
D. The assignment operator (=) is used instead of comparison (===) in the if condition
Solution
Step 1: Check the if condition syntax
The condition uses a single equals sign (=), which assigns instead of compares.
Step 2: Understand the impact of assignment in if
Using = in if always evaluates to true, causing incorrect logic and possible bugs.
Final Answer:
The assignment operator (=) is used instead of comparison (===) in the if condition -> Option D
Quick Check:
Use === for comparison, not = [OK]
Hint: Use === for comparison, not = assignment in conditions [OK]
Common Mistakes:
Confusing = with === in if statements
Forgetting to await serveFile (though it is awaited here)
Incorrect import paths
5. You want to serve multiple static files (HTML, CSS, JS) from a folder named public in Deno. Which approach correctly serves any requested file from that folder, falling back to a 404 if the file doesn't exist?
import { serve } from "https://deno.land/std/http/server.ts";
import { serveFile } from "https://deno.land/std/http/file_server.ts";
serve(async (req) => {
const url = new URL(req.url);
try {
// Which line correctly serves the file?
return await ???;
} catch {
return new Response("Not Found", { status: 404 });
}
});
hard
A. serveFile(req, `./public${url.pathname}`)
B. serveFile(req, `./public/index.html`)
C. serveFile(req, `./public/style.css`)
D. serveFile(req, `./public/${url.searchParams.get('file')}`)
Solution
Step 1: Understand dynamic file serving
To serve any file requested, the server must use the URL path to build the file path inside the public folder.
Step 2: Match the URL pathname to the file path
Using `./public${url.pathname}` correctly maps the request path to the file location.
Final Answer:
serveFile(req, `./public${url.pathname}`) -> Option A
Quick Check:
Dynamic path = ./public + url.pathname [OK]
Hint: Use url.pathname appended to folder path for dynamic files [OK]
Common Mistakes:
Serving only a fixed file like index.html
Using query parameters instead of pathname
Hardcoding a single file path
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.