40ants / 40ants/reblocks

Different route behavior when using different backends

未關閉
#3 10 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Common Lisp
星號
101
分支
12
PR 合併指標
30 天內沒有已合併 PR

描述

Example
```
(ql:quickload '(:weblocks :weblocks-ui :weblocks-navigation-widget))

(defpackage todo
(:use #:cl
#:weblocks-ui/form
#:weblocks/html)
(:import-from #:weblocks/widget
#:render
#:update
#:defwidget)
(:import-from #:weblocks/actions
#:make-js-action)
(:import-from #:weblocks/app
#:defapp)
(:import-from #:weblocks-navigation-widget
#:defroutes))

(in-package todo)

(defapp tasks
:prefix "/")

(defwidget task ()
())

(defmethod render ((task task))
(with-html (:h1 "Test")))

(defroutes test
("/" (make-instance 'task)))

(defmethod weblocks/session:init ((app tasks))
(declare (ignorable app))
(make-test))

```

when using :`(weblocks/server:start :port 40000 :server-type :hunchentoot :interface "127.0.0.1")`, you should get "Test" from 127.0.0.1:4000
But both
`(weblocks/server:start :port 40000 :server-type :wookie :interface "127.0.0.1")` and
`(weblocks/server:start :port 40000 :server-type :woo :interface "127.0.0.1")` give error like this:
```
;;woo, from repl
Callback Error: the message-complete callback failed
The value of WEBLOCKS/ROUTES::PATH is NIL, which is not of type STRING.
```
```
;;wookie, from 127.0.0.1:4000
There was an error processing your request: The value
NIL
is not of type
SIMPLE-STRING
when binding STRING
```
Where am I wrong?

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

The issue shows a route handling problem with different backends (hunchentoot vs. woo/wookie). Look at the routing code in weblocks-navigation-widget and the server start functions. Run the provided example to reproduce the error, then trace why PATH becomes nil with some backends. Check how each backend processes requests and passes them to the route handler.

由索引模型根據 Issue 內容生成。

評估

領域
backend, web-dev
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。