사용자가 호스팅하는 CherryPy 웹 응용 프로그램이 있습니다. 일반적으로 기본 응용 프로그램과 같은 장착 :알 수없는 응용 프로그램 탑재 경로가있는 Cherrypy URL
cherrypy.tree.mount(root,
'/',
root.conf
)
그러나,이 같은의 nginx 같은 역방향 프록시 뒤에 작동해야하기 위해, 그것은 사용자가 선택한 어떤 경로로, 다른 곳에 장착 할 수 있어야합니다 :
mount = '/my_application'
cherrypy.tree.mount(root,
mount,
root.conf
)
여기서 mount는 사용자가 선택하는 모든 항목이 될 수 있습니다.
이제 링크가 끊어지는 것이 문제입니다.
raise cherrypy.HTTPRedirect("/news")
더 이상 작동하지 않습니다. address : port/my_application/news로 리디렉션해야 할 때 주소 : port/news로 리디렉션됩니다.
나는 통과하고 응용 프로그램 경로를 앞에 추가 각 URL에 대한 조건을 만들 수 있습니다
if mount != '/':
url = mount + '/news'
raise cherrypy.HTTPRedirect(url)
을하지만,이 작업을 수행 할 수있는 더 좋은 방법이 있어야합니다. 나는 Request Dispatching을 보았으나 나는 즉시 URL을 다시 쓸 수 없었다.
이 상황을 처리하는 가장 좋은 방법은 무엇입니까?
그래 내가 수정 나의 템플릿과 JS의 모든 스크립트를 통해 갈 필요가 없습니다 것입니다 기대했다 각 URL,하지만 그게 유일한 방법 인 것처럼 보입니다. – user1220109
내가 편집하게하지는 않겠지 만 포인터에 감사드립니다. 매우 감사. – user1220109
예, 제가 아는 한 그것이 유일한 방법입니다. – cyraxjoe