Ken*_*Ken 8 lisp packages startupscript common-lisp hunchentoot
我正在使用Hunchentoot(在SBCL和Linux上)开发Web应用程序,通常我只是从Emacs(SLIME)运行它,但是对于部署我想要更容易自动化的东西.所以我想弄清楚ASDF,因为这似乎是每个人现在都在使用的东西.
myapp.asd:
(in-package #:asdf)
(defsystem :myapp
:name "my app"
:depends-on ("hunchentoot")
:components ((:file "package")
(:file "server" :depends-on ("package"))))
Run Code Online (Sandbox Code Playgroud)
package.lisp:
(defpackage myapp
(:use :cl))
Run Code Online (Sandbox Code Playgroud)
server.lisp:
(setq hunchentoot:*dispatch-table*
(list (hunchentoot:create-static-file-dispatcher-and-handler "/foo" "foo")))
(hunchentoot:start-server :port 8705)
Run Code Online (Sandbox Code Playgroud)
如果我尝试手动加载:
$ sbcl
* (require 'asdf)
* (asdf:operate 'asdf:load-op 'myapp)
Run Code Online (Sandbox Code Playgroud)
它加载并编译了一大堆函数,但随后就停止了.Hunchentoot未运行,提示符不接受输入.我不知道它认为它处于什么状态:打印的最后一行是:
STYLE-WARNING: Implicitly creating new generic function STRINGIFY-COOKIE.
STYLE-WARNING: Implicitly creating new generic function DISPATCH-REQUEST.
STYLE-WARNING: Implicitly creating new generic function WRITE-HEADER-LINE.
Run Code Online (Sandbox Code Playgroud)
有没有办法让这项工作?(忏悔:我真的不太了解ASDF或Common Lisp包,尽管有很多时间阅读它们.)
我知道的甚至比你还少,但这个链接似乎相关:http://common-lisp.net/pipermail/tbnl-devel/2008-November/004455.html。显然,在 SLIME 中运行它(某种程度上)并不是一个糟糕的主意。通过谷歌搜索“部署 hunchentoot”发现。