Ring/リクエストのたびにリロード
ring.middleware.reloadを使うと、リクエストの度に特定のネームスペースのリロードを行ってくれるようです。インタラクティブに開発を行うには、とっても便利そうです。
ハンドラを、wrap-reloadでくるみ、helloweb.coreがリロードされるようにします。
(ns helloweb.core (:gen-class) (:use compojure.core, ring.adapter.jetty, ring.middleware.file, ring.middleware.reload, ;ここを追加 hiccup.core, hiccup.page-helpers, hiccup.form-helpers) (:require [compojure.route :as route])) ;---------------------中略------------------------ (def app (wrap-reload (wrap-file my-routes ".") '(helloweb.core)))
試しに、ルートを追加してブラウザからリクエストを投げてみると、1回目のリクエストではリロードが完了しないのか Page Not Found になります。2回目からは正常にページが返ってくるようになりました。