4

我在OSQA有问题。任何时候,我尝试进入用户页面,都会出现“500 错误”,例如:http: //turkrusforum.com/users/2/mertnuhoglu/

我检查了错误日志。但是那里什么都没有。我想django-debug-toolbar更多地安装和调试问题。

我把DEBUG = TrueINTERNAL_IPS放入settings.py. 但我仍然看不到调试工具栏。

这里说在 Apache 下,这个问题可能与 Alias 设置有关。

这是VirtualHosthttpd.conf文件中的定义:

<VirtualHost *:26903>
  ServerName turkrusforum.com
  KeepAlive Off
  WSGIDaemonProcess turkrusforum.com processes=1 python-path=/home/mertnuhoglu/webapps/otrf:/home/mertnuhoglu/webapps/otrf/osqa:/home/mertnuhoglu/webapps/otrf/lib/python2.6 threads=1 inactivity-timeout=360 display-name=[wsgi-otrf]httpd
  WSGIProcessGroup turkrusforum.com
  WSGIScriptAlias / /home/mertnuhoglu/webapps/otrf/otrf.wsgi
</VirtualHost>

谁能帮我找出如何配置别名设置?

4

2 回答 2

2

要记住几件事:

  1. Django_Toolbar 仅在 INTERNAL_IPs 与请求页面的机器的 IP 地址匹配时显示。

  2. 它查看 WSGI Apache 模块应设置的 HTTP_X_FORWARDED_FOR 标头(但可能不设置,或设置不正确)。

  3. 如果它没有找到该标头,它会查看 REMOTE_ADDR,它在代理设置中始终为 127.0.0.1。

因此,您需要验证您的设置实际上是否正确设置了 HTTP_X_FORWARDED_FOR。

简单的方法是制作一个视图,然后这样做:

def check_forward(request, *args, **kwargs):
    return HttpResponse(request.META.get('HTTP_X_FORWARDED_FOR', None))

映射该 URL 并查看该标头是否设置正确。

于 2013-02-25T11:11:27.873 回答
1

当您右键单击网页并检查时,您可以在 chrome 控制台中发现某些 css 和 html 文件具有 404 作为响应。

/static/debug_toolbar/css/toolbar.css
/static/debug_toolbar/js/toolbar.js
/static/debug_toolbar/img/ajax-loader.gif

这些是 django 工具栏显示面板所需的静态资源。在我的项目的静态文件夹中找不到指定的资源。通过更多调试,我发现添加到已安装应用程序的 django-debug-toolbar 正在为开发框中的静态内容提供服务。当 django 项目托管在 apache 上时,所有静态文件默认别名为静态文件夹。由于与 django_toolbar 相关的文件不存在,服务器返回 404 not found 错误。这可以通过将 Python27\Lib\site-packages\debug_toolbar\static 中的 debug_toolbar 复制到项目静态文件夹中来解决。

于 2014-09-14T18:54:11.057 回答