Пирамида в другом корневом пути, чем /

Когда 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 и мы хотим, чтобы он был составным.

[1] http://rutter.readthedocs.io/en/latest/

Другие вопросы по тегам