I have a static file called index.html
that I'd like to serve when someone requests /
. Usually web servers do this by default, but Compojure doesn't. How can I make Compojure serve index.html
when someone requests /
?
Here's the code I'm using for the static directory:
; match anything in the static dir at resources/public (route/resources "/")
An alternative could be to create either a redirect or a direct response in an additional route. Like so:
(ns compj-test.core (:use [compojure.core]) (:require [compojure.route :as route] [ring.util.response :as resp])) (defroutes main-routes (GET "/" [] (resp/file-response "index.html" {:root "public"})) (GET "/a" [] (resp/resource-response "index.html" {:root "public"})) (route/resources "/") (route/not-found "Page not found"))
The "/" route returns a file response of "index.html" which is present in the public folder. The "/a" route responds directly by 'inlineing' the file index.html.
More on ring responses: https://github.com/mmcgrana/ring/wiki/Creating-responses
EDIT: removed unnecessary [ring.adapter.jetty]
import.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With