2009-11-10 2 views
0

У меня есть аа приложения Джанго, который в настоящее время подается с Apache/mod_wsgi под www.mysite.com/mysiteДжанго схема URL в апаче и Dev сервера

предположит перенаправить URL «MyApp» -> MyApp/urls.py

так, чтобы посетить его из апача посещу www.mysite.com/mysite/myapp/page1
посетить его с Dev сервера мне нужно будет посетить www.mysite.com/myapp/page1

это также означает, что абсолютные URL-адреса будут разными в обоих случаях.

так что лучший способ справиться с этим, так что приложение работает одинаково в Apache и Dev Server?

ответ

0
  1. Не вставляйте абсолютные и/или неизученные URL-адреса в свой код или базу данных. Они всегда вернутся и укусят вас на задницу.

  2. Используйте либо альтернативные параметры settings.py, либо используйте некоторую логику в settings.py, чтобы настроить различия между развитием/постановкой/производством. Мы используем settings.py в качестве производственного файла, а dev/staging - local_settings.py, который тестируется в settings.py и, если присутствует, переопределяет производственные настройки в settings.py. Это предотвращает чередование настроек разработки от ползучести/постановки.

  3. Установите BASE_URL для всего сайта и используйте его для всего остального.

  4. Мы идем немного дальше и имеем STATIC_MEDIA_URL и BIG_CONTENT_URL (для MP3 и Flash-видео) в качестве базовых URL-адресов для других материалов.

Все это позволяет нам использовать любой сервер на данный момент. Когда я занимаюсь разработкой, я обычно позволяю MEDIA поступать с производственных серверов (это быстрее), но иногда я делаю реорганизацию медиа-каталогов, и я не могу делать это на производстве, не нарушая мир. Поэтому я просто изменяю файл local_settings.py, чтобы использовать мою копию каталогов.