问题标签 [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 投票
1 回答
518 浏览

common-lisp - Hunchentoot 调度员

我对 Common Lisp (SBCL) 和 Hunchentoot (使用 Quicklisp) 比较陌生。有人能告诉我如何让它工作吗?我正在尝试将 Hunchentoot 服务器和一些路径作为一个单元包装在一个函数中。当我运行它时,只有 Hunchentoot 的索引页面可用,路径 /a 和 /b 不可用。

0 投票
0 回答
342 浏览

common-lisp - hunchentoot around 方法使用 post 参数重定向

我正在尝试编写登录页面,其中:

  • 用户将使用 post 方法填写表格

  • 如果表单的目标 url 以“/auth-”开头,用户将被重定向到“/login”页面

  • 用户将填写用户名和密码等

  • 如果授权,所有信息将被插入到数据库中

  • 如果用户名或密码为假,所有信息将被保留第二次机会

如果我的目标还不清楚,那么意图与此处描述的没有太大区别。

受此问题启发的这种环绕方法允许我重定向以“auth-”开头的任何链接以重定向到登录页面,以及获取参数:

但是我怎样才能用 post 参数重定向呢?

我是这样想的:

会工作,但 /login 页面无法显示任何内容。我想问题是不能用帖子数据重定向,正如上面的链接所建议的那样。

我之前的尝试是创建一个函数,它将 url(带有 get 参数)保存在隐藏的输入中,让用户登录,然后重定向到保存的 url。这看起来与此答案的第二个建议非常相似,并且对我有用。只是我不能烘干它。

我想知道这是否可以更简单地使用环绕方法并简单地在任何链接前面添加“auth-”来完成。

还有两点:

  • 我想我可能会将整个表单转储到会话中,而不是像这个答案建议的那样发布它们,但我不想跟踪 cookie。如果用户决定放弃并且所有值都保留在会话中怎么办?

  • 我宁愿永远不要像这里那样依赖 http 状态代码 307 。

  • 最后,我不想尝试restas或caveman之类的框架,因为我想学习lisp并适应。我相信这个问题已经被很多人解决了很多次。过去我用rails构建了一些东西。我就像一个脚本小子,直到我学会了足够多的红宝石来看待事物的本来面目。

编辑

而不是(hunchentoot:redirect "/login"),我还尝试了(drakma:http-request "http://127.0.0.1:4242/login" :method :post :parameters (hunchentoot:post-parameters* request)),但以“ERROR MESSAGE 200”失败。顺便说一句,我不知道尝试使用 drakma 来解决这个问题是否是矫枉过正。

感谢您阅读到最后。

0 投票
1 回答
1092 浏览

common-lisp - 如何使用 quicklisp 更新依赖项?

我已将 quicklisp 更新到最新版本

CL-USER> (ql:update-all-dists)

1 个要检查的区域。

您已经拥有最新版本的“quicklisp”:2017-06-30。

但这并没有将依赖项更新到最新版本,例如。Hunchentoot 网络服务器的版本是 1.2.35,但由于有错误修复,我需要 1.2.37。

/home/pio/quicklisp/dists/quicklisp/software/hunchentoot-1.2.35/hunchentoot.asd

如何使用 quicklisp 将 Hunchentoot 更新到最新版本 ( https://github.com/edicl/hunchentoot/releases/tag/v1.2.37 )?

0 投票
1 回答
154 浏览

common-lisp - CL-WHO 在条件后不显示任何 HTML

抱歉这个可能很愚蠢的问题,但我是 Common Lisp 的新手(我是从 Racket 迁移过来的),到目前为止,我正在用 Hunchentoot、cl-who 和其他一些杂项包构建一个 Web 应用程序,但是我最近遇到了一个我无法解决的问题:如果哈希不为空,我正在尝试遍历一个哈希并显示它的值(它们是结构)。如果是,我想显示“这是空的”消息。但是, cl-who 仅输出调用后的 HTML。这是我的代码:

所以在这种情况下,“创建新板”出现了,但粗体文本和标题都没有。但是,如果我在 if 之后移动标题,它就会显示出来。

我已经为此苦苦挣扎了六个多小时,有人对我有任何提示吗?谢谢!

0 投票
1 回答
128 浏览

common-lisp - 使用 define-easy-handler 定义的端点返回 404

我已经定义了一个简单的系统helloworld.asd

... 中的包定义package.lisp

...以及相应的 hello world 网络服务器helloworld.lisp

在 SLIME REPL 中,我使用以下命令启动 Web 服务器:

如果我导航到http://localhost:4242/hello,我希望看到我的 hello world HTML。相反,我收到 404 错误,日志显示:

我怀疑我在这里遗漏了一些相当明显的东西。任何提示/指向文档将不胜感激。系统详情如下:

0 投票
1 回答
188 浏览

common-lisp - easy-acceptor ignoring :document-root option; not serving static files

I am trying to serve static files with Hunchentoot, from the www directory inside my project. My acceptor is defined as:

I then start it with:

The acceptor works, in that I can use define-easy-handler to create a root page:

... and when I browse to http://localhost:4242/ I see that page.

But no static files are served from my www directory. E.g. if I create www/jquery-3.2.1.min.js and browse to http://localhost:4242/jquery-3.2.1.min.js I receive a 404.

0 投票
1 回答
473 浏览

common-lisp - 如何在 Hunchentoot 或 Clack 中启用 CORS,或者如何添加特定的标头?

这个问题说明了一切。本教程:https ://www.html5rocks.com/en/tutorials/cors/至少Access-Control-Allow-Origin: *要在服务器的响应中添加一个标头。

我的应用程序,运行 Hunchentoot,不返回它:

我查看了 Hunchentoot的文档及其headers.lisp文件,但找不到任何特定于 CORS 的内容,并且不明白如何简单地添加标题。

有什么帮助吗?谢谢 !


编辑:我实际上正在使用 Lucerne 和 Clack。

添加

抄送抄送 =>

包缺少.response 不存在。

或使用 Hunchentoot:

变量 Hunchentoot:*reply* 未绑定。

实际上这个变量是用 定义的def-unbound


edit2:尝试使用 Ningle

0 投票
1 回答
168 浏览

common-lisp - 如何在 Caveman 中获取多个查询参数

我的代码在 REPL 中运行良好,但在我的 Web 应用程序中没有获得第二个值。

例如(?vehicle=bike&vehicle=car)

我试过的

当我做

  • CL-用户> (setf |vehicle| '(a b c)
  • CL-用户> (let ((|vehicle| (multival-plist:getf-all `(:|vehicle| ,|vehicle|) :|vehicle|))) (print (alexandria:flatten (list :vehicle |vehicle|))))

这会产生所需的输出(:VEHICLE A B C)

但是当我提交表格时

到我的路线

实际上我将结果渲染到 djula 模板,但是为了测试我使用format了。

结果只(VEHICLE (bike))检查了其中两个,导致

  • 自行车

我期望发生的事情

输出应该

  • 自行车

我将在我的应用程序中使用 16 个复选框,这将导致链接很长,任何建议使链接变短。

PS:我使用 Hunchentoot 服务器和 Caveman2 网络框架。

0 投票
0 回答
64 浏览

common-lisp - Hunchentoot 功能超时?

我即将开始编写一个将接受大文件上传的应用程序。如果上传时间超过“X”秒,我想确保 Hunchentoot 不会超时。我搜索了 quickdocs 并发现了以下超时实例:

  • DEFAULT-CONNECTION-TIMEOUT / 似乎是套接字超时
  • READ-TIMEOUT / 可能是我正在寻找的,但我不确定。
  • WRITE-TIMEOUT / 不要认为这是我想要的

READ-TIMEOUT 会是开始的地方,还是我缺少什么?

谢谢!

0 投票
1 回答
263 浏览

lisp - 使用 cl-who、parenscript 和 hunchentoot 生成内联 javascript

我正在尝试生成内联 javascript,但我必须将 parenscript 代码放入其中(:script)(str)使用 cl-who 标记。ps, ps*,ps-inline并且ps-inline*似乎对生成的 js 没有太大的影响。

是编写宏以避免代码重复的常用方法,还是有更好的方法?

这是我的程序: