/ / Django en el subdirectorio - python, django, url

Django en el subdirectorio - python, django, url

Cuando construyo mi aplicación django, usaré el comando runserver para probar mi sitio web, pero en la implementación, digamos que publicaré mi sitio web en: www.test.com/django.

Mi IIS se configura con una aplicación en mi sitio web predeterminado llamado "django".

Espero que todo funcione bien, pero django no reconoce mi esquema url, que es el siguiente:

urlpatterns = [
# Examples:
url(r"^$", app.views.home, name="home"),
url(r"^contact$", app.views.contact, name="contact"),
url(r"^about", app.views.about, name="about"),
]

y en este caso, necesito modificar mis patrones de url de esta manera, para poder servir la aplicación a través de www.test.com/django:

urlpatterns = [
url(r"^(?i)django/", include([ #Application name
# Examples:
url(r"^$", app.views.home, name="home"),
url(r"^contact$", app.views.contact, name="contact"),
url(r"^about", app.views.about, name="about"),
])),
]

¿Es un buen enfoque? Funciona, pero no estoy seguro de la calidad de esta solución.

Respuestas

0 para la respuesta № 1

El método preferido para solucionar este problema es que su servidor web pase el SCRIPT_NAME variable wsgi. Django usará automáticamente esta variable como un prefijo cuando construya urls, sin la necesidad de cambiar su configuración de url. No estoy familiarizado con IIS, por lo que no puedo decirle cómo hacerlo. Tiene la ventaja de que su código es completamente ajeno al punto de montaje real de su aplicación WSGI, ya que el nombre del script se pasa a Django en lugar de configurarlo en su configuración.

Alternativamente, puede configurar el FORCE_SCRIPT_NAME estableciendo a /django/.