I want to use app-specific routes to make my application more portable. Let's assume that there is no "web2py/routes.py" file and my application name is "init". Now I created the "routes.py" file in "web2py/applications/init/" directory and defined my simple router there:
my_router = dict( controllers = "DEFAULT", functions = ["about", "privacy", "api"], map_static = True, ) My intention here was to make some URLs shorter: /init/default/about <-> /about /init/static/css/print.css <-> /static/css/print.css After reading the code of rewrite.py:load() I got an impression that I need to define this app-specific router inside a "routers" dictionary. It doesn't make much sense for me, but so be it, I added: routers = {"init":my_router} However this doesn't work for the app-specific routes in "web2py/applications/init/routes.py". On the other hand, it works when put in "web2py/routes.py" so I believe I didn't define the router correctly. As this is not documented precisely and the welcome or example apps have no app-level routes defined either could you please share some more information/examples on this? I've tried to figure out the mechanism from the code but the routes loading procedure is not the easiest one to follow :)