Как сообщить Hunchentoot, где найти статические веб-страницы для обслуживания?

В документации Hunchentoot указано:

Метод для ACCEPTOR пытается обслужить статический файл относительно его ACCEPTOR-DOCUMENT-ROOT.

acceptor-document-root acceptor =› (или путь null)

(setf (acceptor-document-root acceptor ) новое-значение)

http://weitz.de/hunchentoot/

У меня возникли проблемы с переводом этой документации в реальный код Lisp.

Может ли кто-нибудь привести пример того, как сообщить Hunchentoot, где искать статические веб-страницы для обслуживания?


person mobydick    schedule 27.11.2011    source источник


Ответы (2)


Самый простой перевод в код будет таким:

(hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242
                                  :document-root #p"<path to static files dir>"))
person Vsevolod Dyomkin    schedule 27.11.2011
comment
Просто бросил это, и это прекрасно работает. Как вы узнали об этом из документации? - person mobydick; 28.11.2011
comment
Документ может быть немного недостаточно явным по этому поводу, но, поскольку он говорит, что в классе acceptor есть аксессор aceptor-document-root, это означает, что в этом классе есть соответствующий слот. И соглашение в Lisp состоит в том, чтобы предоставить initarg для такого слота с именем slot-name в качестве ключевого слова и методов доступа с именем class-slot-name. Это соглашение очень сильное и будет выполняться в 99% случаев. - person Vsevolod Dyomkin; 28.11.2011

Вот фрагмент, который обслуживает одну статическую веб-страницу:

(push (create-static-file-dispatcher-and-handler
       "/stylesheet.css" "~/projects/project-x/stylesheet.css")
      *dispatch-table*)

Чтобы сделать доступной всю папку, попробуйте create-folder-dispatcher-and-handler.

person chrm    schedule 27.11.2011