【问题标题】:Moving Django site to another server- WSGIScriptAlias causing problems将 Django 站点移动到另一个服务器 - WSGIScriptAlias 导致问题
【发布时间】:2012-06-13 15:40:07
【问题描述】:

我正在将 django 站点移至新服务器。在旧服务器上,django 站点的访问方式类似于 mysite.com/ ,但现在,我们想通过 mysite.com/mysite 访问它,并让 mysite.com 处理其他事情。我对 apache 做了如下更改:

    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 很陌生,所以如果有一个邪恶的简单解决方案,我深表歉意。任何建议将不胜感激!

【问题讨论】:

    标签: django apache mod-wsgi django-wsgi


    【解决方案1】:

    问题是您的网址在 href 属性中以 /report 开头。以/ 开头意味着它应该相对于您的域的根目录。我相信你需要改变的是 Django 站点框架的配置方式,看起来this question 有答案。

    此外,您可能应该在模板中使用url tag,而不是在锚标记中硬编码网址。

    【讨论】:

    • +1 表示url 标签。如果您一直使用它,URL 将自动正确。
    • 我看到之前列出的问题/答案,尽管答案并没有真正帮助 - 不太明白这一点。我正在查看看起来很有用的 url 标签。我没有创建模板,我只是继承了它们:(
    • 啊,破解方法是将链接更改为/mysite/report/...
    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 2014-06-24
    相关资源
    最近更新 更多