Serving Static Files
express.static(folder) EK folder ko publicly serve kar deta hai. "public/style.css" file "/style.css" URL par milegi — folder ka naam URL mein NAHI aata, jab tak tum mount path na do.
Production mein caching options important hain: maxAge se browser caching, aur immutable flag hashed filenames ke liye. Static middleware ko routes se PEHLE mount karna performance ke liye behtar hai.
app.use(express.static("public")); // /style.css
app.use("/assets", express.static("public")); // /assets/style.css
app.use(express.static("public", {
maxAge: "1d", etag: true,
}));- express.static(folder) poora folder public serve kar deta hai
- Folder ka naam URL mein nahi aata, mount path do to prefix milta hai
- maxAge/etag se caching, aur folder mein kabhi secrets mat rakho
express.static() ko kai baar call kiya ja sakta hai — Express folders ko ORDER mein dhoondhta hai aur pehli milne waali file serve kar deta hai. Virtual prefix dene se URLs saaf rehte hain aur actual folder structure chhupa rehta hai.
app.use(express.static("public"));
app.use(express.static("uploads")); // fallback folder
app.use("/static", express.static("public")); // /static/logo.pngmaxAge browser ko batata hai ki file kitni der cache karni hai. Hashed filenames (app.9f2c1.js) ke saath immutable flag safe hai kyunki content badalne par naam bhi badal jaata hai. Bade traffic par static files Nginx ya CDN se serve karna Express se behtar hai.
app.use(express.static("public", {
maxAge: "365d", immutable: true, etag: true, index: false,
}));