我目前正在使用以 php 为目标的 haxe 建立一个网站,但我遇到了haxe.Web.Dispatch库的问题。
在我尝试实施 doDefault() 规则之前,一切都运行良好。
我的调度 api 中有以下规则:
doIndex(){ ... }
doPosts(){y:String, m:String, n:String){ ... }
这些都将重定向到正确的网页。例如,这些都可以正常工作:
http://foo.com/index
http://foo.com/posts/2013/01/post-title
现在我已经实施了
doDefault() {...}
为了将任何其他 url 重定向到 404 页面,但它不起作用。转到上述 URL 仍然可以正常工作,但要
http://foo.com/bar
给出以下错误
uncaught exception: DETooManyValues
in file: C:\wamp\www\website\bin\lib\haxe\web\Dispatch.class.php line 191
#0 C:\wamp\www\website\bin\lib\Index.class.php(9): haxe_web_Dispatch->runtimeDispatch(Object(_hx_anonymous))
#1 C:\wamp\www\website\bin\lib\Index.class.php(12): Index->__construct()
#2 C:\wamp\www\website\bin\index.php(9): Index::main()
#3 {main}
调度文档说
如果在 api 对象上没有找到相应的方法 doXXXX,或者如果 URL 是 /,则使用操作 doDefault 代替。如果没有默认操作(此处 XXXX 是 URL 部分名称的占位符),则会引发异常 DispatchError.DENotFound("XXXX")。
但它没有说明 DETooManyValues 异常。有人有想法么?