Static Files
Prologue supports serving static files.
Send static file Response
You can use staticFileResponse to make a static file response.
Download files
User maybe want to download some files from the server. You can use staticFileResponse to send the file to be downloaded.
proc downloadFile(ctx: Context) {.async.} =
await ctx.staticFileResponse("index.html", "static", downloadName = "download.html")
Serve static files
staticfile is implemented as middleware. It should be imported first. You can specify the path of static directories. staticDirs is of varargs[string] type. It contains all
the directories of static files which will be checked in every request.
import prologue
import prologue/middlewares/staticfile
var app = newApp(settings = settings)
app.use(staticFileMiddleware(env.get("staticDir")))
# add your routes
app.run()
Multiple directories:
import prologue
import prologue/middlewares/staticfile
var app = newApp(settings = settings)
app.use(staticFileMiddleware("public", "templates"))
# Or seq[string]
# app.use(staticFileMiddleware(@["public", "templates"]))
# Or array[N, string]
# app.use(staticFileMiddleware(["public", "templates"]))
app.addRoute(urls.urlPatterns, "")
app.run()
Serving Favicon
You may want to add an icon for your website, you can use a favicon. The browser maybe request /favicon.ico to find an icon. redirctTo is handy for this work. dest is the real path of a favicon. For example, you can put it under static directory.