2012-06-13 28 views
0

我正在將django站點移到新服務器的過程中。在舊服務器上,django網站像mysite.com/一樣被訪問,但現在,我們希望通過mysite.com/mysite訪問它,並讓mysite.com處理其他事情。我已經做了以下修改apache和像這樣:將Django站點移動到另一個服務器 - WSGIScriptAlias導致問題

WSGIDaemonProcess mysite processes=2 threads=15 display-name=%{GROUP} 
    WSGIProcessGroup mysite 
    WSGIScriptAlias /mysite /srv/www/django.wsgi 
    #WSGIScriptAlias /mysite /srv/www/django.wsgi #previous config   

    <Directory /srv/www/mysite/mysite > 
      Order allow,deny 
      Allow from all 
    </Directory> 

    Alias /site_media "/srv/www/mysite/site_media/" 
    Alias /admin_media "/srv/www/mysite/admin_media/" 

這似乎是工作精細指着mysite.com/unity/admin讓我可以正確訪問管理頁面瀏覽器,並查看相應的應用程序正確。但是,任何使用自定義模板的東西似乎都是一成不變的。例如,有一個在模板下面,像這樣的條目:

{% ifcodable cl.model %}<li><a href="/report/{{ app_label }}/{{ cl.opts.verbose_name }}" class="link">Coding Report</a></li>{% endifcodable %} 

這將頁面重定向到

http://mysite.com/report/texas/texas 

與之相對

http://mysite.com/mysite/report/texas/texas 

我不知道,如果模板設置不正確,或者與新別名有關。我的urls.py看起來像這樣:

from django.conf.urls.defaults import * 
from django.conf import settings 
from django.contrib import admin 
admin.autodiscover() 
urlpatterns = patterns('', 
    ..... 
    (r'^report/([a-zA-Z]+?)/([a-zA-Z]+?)/(overall|\d+)/{0,1}$', 'mysite.k.views.performance'), 
    (r'^report/(.+?)/(.+?)/{0,1}$', 'mysite.k.views.report'), 
    ..... 

我django.wsgi文件看起來像這樣:

import os,sys 
sys.path.append('/srv/www/mysite') 
sys.path.append('/srv/www/mysite/mysite') 
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

我不知道是什麼正確的事情是做糾正問題。我對django相當陌生,所以如果有一個邪惡的簡單解決方案,我表示歉意。任何建議將不勝感激!

回答

1

問題是,您的網址在href屬性中以/report開頭。從/開始意味着它應該與您的域的根目錄相關。我相信你需要改變Django站點框架的配置,看起來像this question有答案。

此外,您應該在模板中使用url tag,而不是在錨標記中硬編碼URL。

+0

對於'url'標籤+1。如果你總是使用它,那麼URL將自動正確。 –

+0

我看到之前列出的問題/答案,但答案並沒有真正幫助 - 不太明白。我正在查看url標籤 - 看起來很有用。我沒有創建模板,我只是繼承了他們:( –

+0

啊,那麼hacky的解決方案是將鏈接改爲'/ mysite/report/...' – cberner

相關問題