Django: префикс URL для всего сайта - PullRequest
8 голосов
/ 24 мая 2010

Я создал сайт Django, который будет жить в корне, когда он будет работать.Сейчас он отлично работает на IP-адресе.В целях тестирования клиент указал URL-адрес прокси-сервера, но в URL-адресе есть / folder / path, поэтому ни один из шаблонов URL не совпадает.Я поставил (/ папка / путь)?во все шаблоны URL, чтобы они теперь отвечали, но все ссылки не работают, потому что я использую тег {% url%}, и хотя шаблоны URL будут соответствовать необязательному пути, они не включают его в этот тег.

Очевидно, что я могу просто жестко закодировать / папку / путь во все мои URL-адреса (ну, во все URL-адреса) до завершения тестирования, но есть ли лучший способ сделать это?

Ответы [ 3 ]

5 голосов
/ 24 мая 2010

Вы управляете этим при развертывании приложения, правильно установив WSGIScriptAlias в своей конфигурации Apache (при условии, что вы используете mod_wsgi, что вам следует делать).Это передается в Django, который затем автоматически префиксирует все обратные поиски URL с правильным значением.Вам не нужно делать какие-либо ручные манипуляции с префиксами.

1 голос
/ 24 мая 2010

Для этой цели я использую URL_PREFIX в settings.py и добавляю его в каждое включение в urls.pyЯ также добавляю его в начале MEDIA_URL, чтобы все ссылки на изображения / css / js работали.Но я также хотел бы услышать о более хитром решении?

0 голосов
/ 28 августа 2013

Если WSGIScriptAlias ​​не работает или вы по какой-то причине не можете его настроить, помните, что функция include () в urlconf добавляет префикс ко всем URL-адресам.Вы можете создать urlconf, который включает ваш текущий корневой urlconf, и смонтировать его по префиксу, а затем указать свой файл settings.py на этот urlconf.

Отказ от ответственности: сам не пробовал, но он должен работать.

...