如何在项目中启动 Hunchentoot?我查看了 Edi Weitz 的指南,一切都很顺利,直到安装完成。列出的教程要么被破坏,要么略过实际的服务器使用情况。
我有我的 asdf 文件,使用 quicklisp 安装依赖项,并设置了一个调度表。如何让 Hunchentoot 使用这些东西?
如何在项目中启动 Hunchentoot?我查看了 Edi Weitz 的指南,一切都很顺利,直到安装完成。列出的教程要么被破坏,要么略过实际的服务器使用情况。
我有我的 asdf 文件,使用 quicklisp 安装依赖项,并设置了一个调度表。如何让 Hunchentoot 使用这些东西?
为了更新,我改进了 Svante 的回答:
(defun start-server ()
(stop-server)
(start (setf *acceptor*
(make-instance 'easy-acceptor
:port 4242))))
(defun stop-server ()
(when *acceptor*
(when started-p *acceptor*
(stop *acceptor*))))
在启动服务器之前,acceptor为 nil。在服务器启动后(即使它随后被停止),它也不再为零。started-p 测试检查是否启动了已初始化的 easy-acceptor。如果您尝试停止已停止的接受器,则会收到错误消息。
您调用start
.acceptor
如果您使用easy-handler
hunchentoot 附带的基本机制,那将是一个easy-acceptor
.
您将需要一种机制来启动和停止您的服务器。这可能看起来像这样:
(defvar *acceptor* nil)
(defun start-server ()
(stop-server)
(start (setf *acceptor*
(make-instance 'easy-acceptor
:port 4242))))
(defun stop-server ()
(when *acceptor*
(stop *acceptor*)))
(start (defparameter hunchentoot-listener
(make-instance 'easy-acceptor
:port 4242
:document-root #p"/path/to/your/html/")))
将在端口 4242 ( http://localhost:4242/ )上为您提供一个正在运行的 Web 服务器