I am in the process of deploying a new Django site to replace a current Wordpress blog. As I get it setup, I want to test everything in the domain's subdirectory before I switch things to the root and "go live". For example: http://example.com/django/
Editing my .htaccess
file allows me to redirect things without a hitch (I can see the Django site and my wordpress site still works), however, I am not sure how to tell Django to view http://example.com/django/
as the BASE URL (rather than just http://example.com/
) ... I tried setting my SITE domain but that didn't help.
Currently, all my pages get a 404 response - they they aren't matching any url patterns (because none of my url patterns start with django/
).
I looked for a way to set a BASE_URL
but can't find any. Id开发者_JAVA百科eas? I only want to do this for a couple hours while I test everything to make sure it is working and then swap the settings in the .htaccess
file and run it on the main site.
Set the following in your Apache directive:
PythonOption django.root /django
Then django will trim /django
off the front of every URL request.
One way to do this would be to copy your current mysite/mysite/urls.py
call it say betaurls.py
to add /django/
before each url, thus
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
in urls.py
would become
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^django/admin/', include(admin.site.urls)),
)
in the new file betaurls.py
and then, in the settings.py
file, alternate between
ROOT_URLCONF = 'mysite.urls'
and
ROOT_URLCONF = 'mysite.betaurls'
So /django/
becomes your new root for the django deployment.
精彩评论