denoland / std

The Deno Standard Library
https://jsr.io/@std
MIT License
3.22k stars 621 forks source link

try_files for @std/http/file_server #5875

Open redabacha opened 2 months ago

redabacha commented 2 months ago

Is your feature request related to a problem? Please describe.

there is currently no built-in way to attempt to serve a file from a directory and then handle when the file doesn't exist.

Describe the solution you'd like

a function similar to serveDir or serveDir itself but will throw or hand off back in some way to the caller to deal with when a file is missing, similar to the try_files directive in nginx.

Describe alternatives you've considered

building my own solution but i feel this would be a common enough use case to have as part of the standard library.

iuioiua commented 2 months ago

Are you using serveDir() or using @std/http/file-server as a script? Please clarify. It seems you're using serveDir(). In that case, serveDir() serves a HTTP 404 Not Found response. If anything, I could understand perhaps adding a notFoundHandler option to serveDir().

redabacha commented 2 months ago

hi @iuioiua, yes that is correct i was referring to the serveDir() function being used in a running application. for existing reference, hono have a onNotFound handler as an option for serveStatic in all their supported runtimes, e.g. https://hono.dev/docs/getting-started/deno#onnotfound.

iuioiua commented 2 months ago

WDYT about a notFoundHandler option, @kt3k?

kt3k commented 2 months ago

The option like that makes sense to me