У меня есть веб-приложение CherryPy, которое размещено пользователем. Как правило, основное приложение устанавливается как таковые:URL-адреса Cherrypy с неизвестным путем монтирования приложения
cherrypy.tree.mount(root,
'/',
root.conf
)
Однако для того, чтобы он работает за обратным прокси-сервером, такие как Nginx, она должна иметь возможность установить в другом месте, к тому, что путь, пользователь выбирает:
mount = '/my_application'
cherrypy.tree.mount(root,
mount,
root.conf
)
Где монтирование может быть любым пользователем.
Проблема в том, что ссылки становятся сломанными.
raise cherrypy.HTTPRedirect("/news")
Больше не работает. Он перенаправит адрес: порт/новости, когда мне нужно перенаправить адрес: port/my_application/news.
я мог бы пройти и создать условный для каждого URL, которая подставляет путь приложения:
if mount != '/':
url = mount + '/news'
raise cherrypy.HTTPRedirect(url)
Но должен быть лучший способ сделать это. Я посмотрел на Диспетчер запросов, но я не мог заставить его повторно писать URL-адреса на лету.
Каков наилучший способ справиться с этой ситуацией?
да, я надеялся, что я не должен был бы пройти через все мои шаблоны и JS скриптов для изменения каждый URL, но похоже, что это единственный способ. – user1220109
Не позволю мне редактировать, но спасибо за указатели. Очень признателен. – user1220109
Да, насколько я знаю, это единственный способ. – cyraxjoe