如何使用连字符重命名 web2py 中的现有应用程序?
例如,我想将welcome
应用程序重命名为my-app
. 我尝试简单地将/applications/welcome
文件夹重命名为/applications/my-app
,但是,这只是从管理员中删除了欢迎应用程序,并且当我尝试访问 url 时:
http://localhost:8000/my-app/default/index
我收到消息:
invalid request
事实证明,web2py 在应用程序目录中带有连字符的文件夹名称存在问题。我注意到在my-app
通过管理界面创建应用程序时,它创建了一个名为my_app
.
任何名称中带有连字符的应用程序都不会被 web2py 识别!
这与python中的有效标识符只能包含字母、数字和下划线这一事实有关。
如果必须在 url 中使用连字符,解决方案是将map_hyphen
dict 值设置True
为routes.py
文件中的基本目录或特定于应用程序的位置 。这会将 url 请求中的传入连字符转换为下划线,然后更改您的传出下划线URL 中的连字符的目录结构。默认情况下,此行为False
在默认路由器中设置为。
如果您碰巧将欢迎脚手架更改为带有连字符的东西,我希望这可以使某人免于头痛。;)
尝试点击管理应用主页右上角的“重新加载路由”按钮,或重新启动服务器。