0

我是 django 初学者。

我在 /var/log/apache2/error.log 中收到以下消息(apache 设置为调试级别)

[Thu Aug 30 16:15:11 2012] [info] mod_wsgi (pid=5616): Initializing Python. [Thu Aug 30 16:15:11 2012] [info] mod_wsgi (pid=5616): Attach interpreter ''. [Thu Aug 30 16:15:15 2012] [error] [client 172.24.113.130] File does not exist: /var/www/netvistra3 [Thu Aug 30 16:15:19 2012] [error] [client 172.24.113.130] File does not exist: /var/www/netvistra3

我的 wsgi 文件位于/usr/local/django/netvistra3/apache/netvistra3.wsgi

管理站点似乎只适用于 django 的嵌入式网络服务器。

来自 apache2 虚拟目录站点的代码段:

    Alias /static/admin /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin
    WSGIDaemonProcess netvistra3 user=pbensel group=staff threads=5
    WSGIScriptAlias /netvistra3 /usr/local/django/netvistra/apache/netvistra3.wsgi
    <Directory /usr/local/django/netvistra3>
            WSGIScriptReloading On
            WSGIProcessGroup netvistra3
            WSGIApplicationGroup %{GLOBAL}
            Order allow,deny
            Allow from all
    </Directory> 

我非常感谢任何帮助

4

2 回答 2

0

正如大卫所说,您必须采取正确的步骤来设置静态文件。你有:

Alias /static/admin /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin

但缺少相应的:

<Directory /usr/lib/python2.7/dist-packages/django/contrib/admin/static>
Order allow, deny
Allow from all
</Directory>

没有那个,你会发现静态文件失败并出现禁止错误。

不过,我还会检查您是否已正确设置设置以说明静态媒体在哪个 URL 下可用。

如果静态文件未正确提供,您将丢失管理页面的所有内容,这可能被视为无法正常工作。

还要按照建议查看 collectstatic ,因为像您正在做的那样从 Python 安装中引用静态媒体并不总是一个好主意。

于 2012-08-31T08:25:59.673 回答
0

Django 在它自己的服务器下运行时有一点魔力,这有助于解决这个问题。在 Apache 等上部署时,您负责设置 Apache 或您使用的任何媒体服务器来提供管理文件。Django 文档在这个主题上非常好。请参阅以下指向Django 文档的链接。

这是一个很常见的问题。所以,不要难过。如果您需要有关“部署 django 管理员”的任何更具体的帮助,只需 Google

顺便说一句,我对我的项目使用“collectstatic”方法并从 s3 存储桶中为它们提供服务。它工作得很好,似乎是一种非常普遍的做法。至少使用 Django 1.3。

于 2012-08-30T20:46:44.817 回答