问题标签 [hunchentoot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
686 浏览

common-lisp - 有哪些推荐的 Common Lisp Web 服务器选项?

到目前为止,我只尝试过 Hunchentoot 并听说过 AllegroServe、ABCLweb,尽管我不知道它们在性能方面的比较。我想知道,目前在生产环境中部署 Common Lisp Web 应用程序的最佳选择是什么?

0 投票
6 回答
2026 浏览

lisp - 使用 ASDF 启动 Hunchentoot

我正在使用 Hunchentoot(在 SBCL 和 Linux 上)开发一个 Web 应用程序,通常我只是从 Emacs(SLIME)运行它,但对于部署,我想要一些更容易自动化的东西。所以我试图弄清楚 ASDF,因为这似乎是现在每个人都在使用的东西。

myapp.asd:

包.lisp:

服务器.lisp:

如果我尝试手动加载它:

它加载并编译了一大堆函数,然后就停止了。Hunchentoot 没有运行,提示不接受输入。我不知道它认为它处于什么状态:打印的最后几行是:

有没有办法使这项工作?(坦白:我真的不太了解 ASDF 或 Common Lisp 包,尽管阅读了很多小时。)

0 投票
2 回答
2496 浏览

common-lisp - 如何将 Web 应用程序连接到 Hunchentoot

我正在编写一个需要 hunchentoot 网络服务器的网络应用程序。我对 hunchentoot 或任何 Web 服务器几乎一无所知,我想知道我用 Common Lisp 编写的应用程序如何为 Web 客户端提供页面。我见过一些优秀的例子(例如Hunchentoot Primer、 Lisp for the Web),尤其是。Hunchentoot 页面上列出的那个。你知道我在哪里可以找到更多这样的例子吗?谢谢。

0 投票
4 回答
2062 浏览

lisp - 关于 Lisp 和包的新手问题

如果您不关心并且只想看到问题,这里是背景故事跳到底部。

所以我在 LISP 中玩了一段时间。一些基本函数,一些类,和文件IO。当我看到这篇文章时:

http://www.adampetersen.se/articles/lispweb.htm

我很高兴尝试将 lisp 用于 Web 应用程序。我去下载这些包,但我一生不知道如何将它们加载到我的 Allegro IDE 中。

嗯...好吧,hunchentoot 网站说很多基本包都在 LispWorks 中。所以我下载那个。仍然不确定如何获取我下载到这些 IDE 中的软件包的源代码。他们似乎有软件包的二进制文件?

哦,好吧,也许我会切换到我的 ubuntu 服务器并 apt-get 所有的包并设置 slime(我以前没有使用过它,因为我只是想学习 lisp。同时学习 emacs 和 lisp 似乎真的令人生畏)。我很容易得到所有需要的包并加载粘液,同样的问题没有可用。

我又挖了一些,看到了这个名为 ASDF 的程序。看起来 ASDF 是 lisp 的某种包构建器?我不知道这似乎令人困惑。这个时候我就要放弃了。


如果您仍在阅读这里是我的问题。
1. 如何将这些包的源代码加载到我的 lisp 环境中。尝试学习 lisp 并不太难,但有关环境的信息却很少。我是否需要构建使用 ASDF 下载的软件包。
2. 有没有一种简单的方法可以让某人在 lisp 中启动和运行,而无需提前大量时间学习所有工具?

0 投票
1 回答
370 浏览

macos - Hunchentoot 1.0 只返回空响应

我正在使用带有 Mac OS 10.5 和 SBCL 1.0.29 的 Intel Mac。我之前在这里完成了 1.0 之前的 Hunchentoot 开发,所以我已经安装了它(通过 asdf-install)。

最近我开始了一个新项目,并决定从 Hunchentoot 1.0 开始。我安装了 Hunchentoot,它似乎安装了 1.0(和 deps)就好了。我可以在 SBCL 中加载它(通过 SLIME 或终端),我可以针对新接口编写代码,它编译得很好,一切看起来都很好。

也就是说,直到我尝试访问该网页:我只得到空的响应。Firebug 报告“200 OK”但页面信息显示大小“0 字节”(文本/纯文本,ISO-8859-1,但我猜这些是默认值)。所以我尝试了netcat和telnet,它似乎接受了我端口上的连接,然后立即断开连接。

Mac OS 上的 Hunchentoot 1.0 有问题吗?或者同时安装 2 个 Hunchentoot 版本?还是我没有想到的其他东西?我敢肯定这可能很明显,但我在这里画了一个空白。

谢谢!

0 投票
3 回答
577 浏览

lisp - 安装 Lispy 包管理器的问题

我正在一台新机器上安装 Hunchentoot。这次我想我会尝试 Lispy,因为它似乎是一种以标准且希望是自动的方式管理 Hunchentoot 依赖项的最简单方法。但是,当我安装它时,它会因为无法验证密钥而跳闸。我以前见过 ASDF-INSTALL 尝试使用密钥,并且我通常会找到一些方法来跳过验证密钥。我真的不需要那种安全性,我相信分发这些包的人,好吗?无论如何,在这种情况下,没有重新启动来跳过密钥,所以与其深入研究代码并破解它,我想知道是否有更正确的方法来处理这个问题。我认为 Lispy 不应该被破坏,我正在使用 Common Lisp 可以想象的最标准和受支持的环境:Ubuntu + sbcl。我想我可以完成这项工作,但我可以再次使用 ASDF-INSTALL 手动安装 Hunchentoot 的所有依赖项,所以我想我会给 Lispy 一个机会,并以更可控和正确的方式进行。这是我所做的实际日志,删除了大部分中间消息:

0 投票
1 回答
485 浏览

common-lisp - 如何通过专门化一个函数来更改 Hunchentoot 会话 cookie 名称?

我正在使用 Hunchentoot 并想更改会话 cookie 的名称。这是使用通用函数实现的,文档说要更改名称,您可以“专门化函数”。

我不太确定这在这里意味着什么。我的印象是,专门化一个函数就是在某些参数类型上分派一个方法。在这种特殊情况下,该函数采用服务器接受器,我不想更改它。有人可以照亮我吗?

API:http ://weitz.de/hunchentoot/#session-cookie-name

这是源代码中的实现:

0 投票
1 回答
257 浏览

deployment - 需要的反馈:生产 Lisp webapps 的无中断部署策略

我有兴趣了解人们如何在生产环境中进行 Lisp webapp 部署和更新(尤其是更新)。

在 Ruby 中,包括我自己在内的许多人都使用 Capistrano 进行部署。它提供了一些很好的间接性和远程执行命令的能力,最重要的是(在我看来)回滚到工作代码库的能力。

我知道长期运行的 Lisp 进程通过 SSH 隧道通过 Swank 连接并就地修改的想法是一个流行的想法,但我没有喝过 Koolaid,主要是因为更新有状态的问题进程(如果出现问题,这似乎是在自找麻烦——比如内存中的当前状态与即将在内存中的新对象定义之间的不可预见的阻抗不匹配)。

鉴于您可以使用 hunchentoot 创建几乎无状态(或完全)的 web 应用程序(或在此处插入您最喜欢的 Lisp 应用程序服务器),如果 Lisp 进程(es ) 隐藏在其上游通道中的 nginx 后面,如果您可以正确编排取消 hunchentoot 进程并在更新代码后将它们重新启动,例如,将它们一直恢复,同时让至少一个 hunchentoot 进程在集群中运行任何给定的时刻(可以使用 CGI 或 mod_lisp,但我对这种方法并不特别感兴趣 - 虽然如果你真的喜欢这种方法,请至少说一下,我想学习)。例如,使用Passenger(将橙子与苹果进行比较,因为它按需启动流程),

好吧,这有点漫无边际,实际上我将尝试所有这些,但我想从其他人那里获得一些关于这些想法的反馈。也许你有更好的主意。

谢谢

0 投票
1 回答
1435 浏览

common-lisp - Hunchentoot/cl-who 页面构成

Hunchentoot/cl-who 页面构成

我正在尝试将 hunchentoot 中的几页放在一起作为实验,但我遇到了意想不到的墙壁。例如,我有以下模板宏。

现在,当我有一个纯文本页面,或者一个充满 html 文字的页面时

一切都很好。页面输出正确,我可以立即看到我的代码所做的工作。但是,当我有一个由冗余元素组成的页面时,就没有那么简单了。例如,假设我有一个页面,无论出于何种原因,我都想在该页面上显示三个 RSS 新闻源。这是一个足够复杂的组件,我想将其抽象出来,所以在我看来,我应该能够做类似的事情

但是上面的结果是一个“服务器错误”页面。我不确定为什么;page-template是一个宏,因此在publish-newsfeed它们位于with-html-output-to-string. 谁能告诉我我做错了什么?

此外,在仔细检查各种 Hunchentoot/cl-who 教程后,似乎都没有进行这种页面组合。有一些 Hunchentoot 经验的人可以告诉我将页面分解为组件的正确/规范方法是什么?


编辑:

拉马伦的正确回应如下;with-html-output宏在不同的评估规则下工作。在这种情况下实际工作的发布新闻源版本实际上是

请注意删除mapcarfor dolist(我是一名计划者,不要给我太多关于喜欢 lambdas 的困难,但在这里它们不是正确的选择),以及使用htmto 转义 html s-exps 块(h-exps?)否则不会在with-html-output. 最后,我不得不包装文本而不是:href属性,(str )以使它们动态扩展。

0 投票
3 回答
600 浏览

lisp - cl-who 中的格式无法正常工作

我正在尝试通过 hunchentoot 和 cl-who 构建个人网站,但在以下代码中出现语义错误:

“标准页面”是一个宏:

“(index)”的评估(在“(articles)”中有一篇测试文章返回:

通过查看<li>..</li>标签,我想知道为什么没有输出。我认为格式功能有问题,但我不知道是什么。