Пирамида в другом корневом пути, чем /
Когда pserve запускается по умолчанию, он запускает приложение пирамиды в http://0.0.0.0:6543/ однако как я могу изменить его на http://0.0.0.0:6543// myapp
В настройках я могу изменить порт, но я не нашел где-либо, где изменить корневой путь
1 ответ
В любом приложении WSGI environ['SCRIPT_NAME']
здесь очень важно Он определяет корневой путь для всех URL-адресов в приложении. Полный путь environ['SCRIPT_NAME'] + environ['PATH_INFO']
, Предполагая, что вы сделали все правильно в своем приложении (например, request.route_url(..)
будет генерировать URL-адреса с использованием этой информации), тогда вы можете просто перемонтировать приложение в другом месте (по умолчанию SCRIPT_NAME
является ''
инструктируя это, что это должно быть что-то еще.
Есть несколько вещей, которые вы можете сделать, основываясь на том, как вы развертываете свое приложение (если оно находится за прокси-сервером, то все немного сложнее). Давайте предположим, что вы просто используете простое пирамидальное приложение с официанткой. Вы можете переместить свое приложение, используя rutter
[1] пакет, который будет соответствовать /myapp/*
путь и отправьте все запросы в ваше приложение с соответствующим SCRIPT_NAME
(myapp
) а также PATH_INFO
,
Декларативная конфигурация является самой простой для приложения пирамиды. Просто установите rutter
а затем обновите файл INI для монтирования приложения в /myapp
префикс:
[app:foo]
use = egg:myapp#main
[composite:main]
use = egg:rutter#urlmap
/myapp = foo
Обратите внимание, я переименовал app:main
в app:foo
потому что вы можете иметь только один компонент wsgi с именем main
и мы хотим, чтобы он был составным.