gpt4 book ai didi

django - 无法让 Apache 为 django 管理静态文件提供服务

转载 作者:行者123 更新时间:2023-12-04 23:05:47 24 4
gpt4 key购买 nike

我正在尝试将 Django 部署到 apache,但无法让它为我的静态管理文件提供服务。它似乎在/var/www/static 下寻找它们,我似乎无法改变它。

除了样式之外,管理站点似乎正在工作。我得到一个标题和一个登录表格。我的 django 应用程序也在工作。这是未提供给管理员的静态文件。

使用 Django 1.4.1。

这些文件位于/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static 下,并从/home/dutt/vaccapp/backend/static/admin 链接到。

apache错误日志说这个

[Sun Sep 30 10:57:20 2012] [error] [client 192.168.1.10] File does not exist: /var/www/home, referer: http://dathui.example.com/vaccapp/admin/
[Sun Sep 30 10:57:20 2012] [error] [client 192.168.1.10] File does not exist: /var/www/home, referer: http://dathui.example.com/vaccapp/admin/

但我不知道如何改变它。

在我的 django 站点配置中,我有
<VirtualHost *:80>
ServerAdmin me@host.com

ServerRoot "/home/dutt/vaccapp"
DocumentRoot "/home/dutt/vaccapp"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dutt/vaccapp/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

Alias /static/ "/home/dutt/vaccapp/backend/static/"
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>

ServerRoot 未在 apache2.conf 中设置。

从我的 settings.py
STATIC_ROOT = '/home/dutt/vaccapp/backend/'
STATIC_URL = '/static/'

没有添加到 STATICFILES_DIRS。

这被添加到我的 apache2.conf
WSGIScriptAlias /vaccapp /home/dutt/vaccapp/backend/wsgi.py
WSGIPythonPath /home/dutt/vaccapp

<Directory /home/dutt/vaccapp>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

最佳答案

ADMIN_MEDIA_PREFIX默认设置为 /static/admin/ # 在 Django 1.4 中已弃用(现在使用 STATIC_URL + 'admin/' 。结果是一样的。

以下是对 apache 配置的修复:

Alias /static/admin "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static"
Alias /static "/home/dutt/vaccapp/backend/static"
<Directory "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>

并且 WsgiScriptAlias 必须从主 apache 配置移动到 VirtualHost。

经过长时间的讨论,我们发现问题是 Django 没有正确安装 admin static ...它们彼此符号链接(symbolic link)(非常奇怪)。 Django 重新安装修复了它,现在它工作正常。

关于django - 无法让 Apache 为 django 管理静态文件提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12660079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com