开发者

How to temporarily move a django site into a subdirectory (for testing)?

开发者 https://www.devze.com 2022-12-13 07:58 出处:网络
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

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消