Add error page for internal server error
This commit is contained in:
parent
136eff6782
commit
b403e6643f
2 changed files with 17 additions and 9 deletions
src
|
@ -1,14 +1,22 @@
|
||||||
(defpackage #:hp/middlewares/recoverer
|
(defpackage #:hp/middlewares/recoverer
|
||||||
(:use #:cl)
|
(:use #:cl
|
||||||
|
#:hsx)
|
||||||
(:local-nicknames (#:tb #:trivial-backtrace))
|
(:local-nicknames (#:tb #:trivial-backtrace))
|
||||||
(:local-nicknames (#:env #:hp/env))
|
(:local-nicknames (#:env #:hp/env))
|
||||||
(:export #:*recoverer*))
|
(:export #:*recoverer*))
|
||||||
(in-package #:hp/middlewares/recoverer)
|
(in-package #:hp/middlewares/recoverer)
|
||||||
|
|
||||||
(defun message (condition)
|
(defun error-page (condition)
|
||||||
(if (env:dev-mode-p)
|
(hsx
|
||||||
(tb:print-backtrace condition :output nil)
|
(html :lang "ja"
|
||||||
"Internal Server Error"))
|
(head
|
||||||
|
(title "Internal Server Error"))
|
||||||
|
(body
|
||||||
|
(main
|
||||||
|
(h1 "500 Internal Server Error")
|
||||||
|
(when (env:dev-mode-p)
|
||||||
|
(pre
|
||||||
|
(code (tb:print-backtrace condition :output nil)))))))))
|
||||||
|
|
||||||
(defparameter *recoverer*
|
(defparameter *recoverer*
|
||||||
(lambda (app)
|
(lambda (app)
|
||||||
|
@ -16,5 +24,5 @@
|
||||||
(handler-case
|
(handler-case
|
||||||
(funcall app env)
|
(funcall app env)
|
||||||
(error (c)
|
(error (c)
|
||||||
`(500 (:content-type "text/plain")
|
`(500 (:content-type "text/html; charset=utf-8")
|
||||||
(,(message c))))))))
|
(,(hsx:render-to-string (error-page c)))))))))
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
:name "description"
|
:name "description"
|
||||||
:content (or description "pakuの個人サイト")))
|
:content (or description "pakuの個人サイト")))
|
||||||
(body :hx-ext "head-support"
|
(body :hx-ext "head-support"
|
||||||
(main :class "container mx-auto"
|
(main :class "container mx-auto"
|
||||||
children)))))
|
children)))))
|
||||||
|
|
||||||
(defmethod jg:process-response ((app jg:app) result)
|
(defmethod jg:process-response ((app jg:app) result)
|
||||||
(jg:set-response-header :content-type "text/html; charset=utf-8")
|
(jg:set-response-header :content-type "text/html; charset=utf-8")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue