我正在玩web2py网址重写。应用程序的名称是py2manager
,我想通过代码在web2py中将其设为默认值:
# vim py2manager/routes.py:
routers = dict(
BASE = dict(
default_application='py2manager',
)
)
但是在web2py重新启动后,我无法访问此页面http://localhost:8000/user/login(应该与旧版本http://localhost:8000/py2manager/default/user/login相同,旧版本可以正常工作)。我无法以某种方式找到调试日志。
我的web2py版本是从git克隆的2.14.6-stable+timestamp.2016.05.09.19.18.48
。
如何通过省略py2manager/default
路径进行正确的重写。
P.S。作为文档,我使用了官方人http://web2py.com/books/default/chapter/29/04/the-core#URL-rewrite
答案 0 :(得分:1)
默认函数为index
,因此路由器需要更多信息来区分/index/user/login
的请求(其中user
和login
都是{{{ 1}} function)和index
(其中/user/login
是login
函数的arg)。为此,您必须在相关控制器中指定功能列表:
user
此外,如果可能,您应该使用routers = dict(
BASE = dict(
default_application='py2manager',
),
py2manager = dict(
default_controller='default',
default_function='index',
functions=dict(
default=['index', 'user', 'list', 'of', 'other', 'functions']
)
)
)
函数生成您的网址,因为它始终会根据路由器的配置为给定路由生成相应的网址。
答案 1 :(得分:0)
可能需要重新加载路线。
如果你去管理员。在右上角,“更改管理员密码”按钮旁边是“重新加载路由”按钮。