2017-02-06 5 views
0

Я играю с web2py url rewrite. Название приложения py2manager, и я хочу, чтобы сделать его по умолчанию в web2py с помощью кода:web2py URL rewrite

# 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 является 2.14.6-stable+timestamp.2016.05.09.19.18.48, клонированный из git.

Как сделать правильный переписать с опуском py2manager/default Путь.

P.S. Как документ, я использовал официальный человек http://web2py.com/books/default/chapter/29/04/the-core#URL-rewrite

ответ

1

функция по умолчанию index, поэтому маршрутизатор нужно больше информации, чтобы различать между запросом /index/user/login (где user и login оба являются арг функции index) и /user/login (где login является аргументом функции 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'] 
     ) 
    ) 
) 

Кроме того, если это возможно, следует использовать функцию URL() для генерации адреса, так как он всегда будет производить соответствующий URL для данного маршрут, основанный на конфигурации вашего маршрутизатора.

0

Возможно, маршруты необходимо перезагрузить.

Если вы перейдете к администратору. В правом верхнем углу рядом с кнопкой «Изменить пароль администратора» находится кнопка «Перезагрузка маршрутов».