(** Serving the static assets embedded at build time. Assets are compiled into the executable by [ocaml-crunch] (see the rule in [lib/dune]), so a deployment is a single binary with no asset directory to keep in sync. Responses are cached for a day; because the content ships with the binary, a new release is the only thing that can change them. *) val handler : Dream.handler (** Dream handler for requests under [/static/**]. Looks up the path in the embedded asset store and responds with appropriate content type and cache headers, or 404 when the asset is not found. *)