2010-05-24 1 views
8

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

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

ответ

5

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

+2

Чтобы прояснить, другими словами, убедиться, что точка монтирования URL, используемая в WSGIScriptAlias ​​в конце, соответствует URL-адресу, на котором он монтируется, с любым прокси-сервером на передней панели. Пока они одинаковы, все должно работать нормально в отношении префиксов. –

+1

@ Даниэль, как насчет развертывания nginx + uwsgi? – panchicore

+0

@ Daniel Roseman Я развертываю свое приложение django в apache локально на xampp, и у меня есть этот 'WSGIScriptAlias ​​/ dj/'c: /xampp/htdocs/commons/mod.wsgi'', но, кажется, мне нужно префикс URL в моем уже разработанном приложении с/dj /. Если я правильно понимаю вас, dj следует префикс автоматически, но это не так. Что я получаю неправильно – flexxxit

1

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

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^