0

我正在设置一个 django 服务器,但我的静态文件有问题:

django 设置

STATIC_URL = 'http://localproject/static/'
STATIC_ROOT = '/srv/www/project/static/'
MEDIA_ROOT = '/srv/www/project/public/'
MEDIA_URL = '/public/'
ADMIN_MEDIA_PREFIX = '/static/admin/'

阿帕奇

Alias /static/ /srv/www/project/static/'
<Document /srv/www/project/static>
Order allow,deny
Allow form all
</Document>

Alias /public/ /srv/www/project/public/'
<Document /srv/www/project/public>
Order allow,deny
Allow form all
</Document>

所以,我有没有样式和网站的管理员,例如 http://localproject/public显示有关* Not FlatPage 与给定查询匹配的错误 *

是的,我正在使用 django.contrib.staticfiles

任何的想法?谢谢

4

2 回答 2

0

两件事情:

首先,ADMIN_MEDIA_PREFIX = STATIC_URL+'admin/'。您实际上可以使用它或将其更改为ADMIN_MEDIA_PREFIX = 'http://localproject/static/admin/'. /static/admin/在您的情况下不正确。

其次,Django 仍在接收请求,并且“public”作为 slug 传递给 FlatPages 视图,这就是您收到该错误的原因。有关静态文件的正确 Apache 配置,请参阅:https : //docs.djangoproject.com/en/dev/howto/deployment/modwsgi/#serving-files。

于 2011-10-04T16:23:12.240 回答
0

我回答可能对某人有帮助,问题是我使用 apache (/etc/apache2/sites-available/project),但我错了“在项目中使用另一个 apache 配置” /srv/www/project/apache/ httpd.conf并在最后一个配置中设置我的别名,当别名配置需要位于(/etc/apache2/sites-available/project) 中时

using:$ sudo nano /etc/apache2/sites-available/project

和项目内容

<VirtualHost *:80>

    ServerName project
    DocumentRoot /srv/www/project

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


    AliasMatch ^/([^/]*\.css) /srv/www/project/static/css/$1

    Alias /public/ /srv/www/project/public/
    Alias /static/ /srv/www/project/productos/static/

    <Directory /srv/www/project/productos/static>
    Order deny,allow
    Allow from all
    </Directory>

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


    WSGIDaemonProcess project processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup project

    WSGIScriptAlias / /srv/www/project/apache/django.wsgi

</VirtualHost>

我的设置.py:

MEDIA_ROOT = '/srv/www/project/public/'
MEDIA_URL = 'http://project/public/'
STATIC_ROOT = '/srv/www/project/productos/static/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = 'http://project/static/admin/'

现在正在工作:),记住这是我自己的服务器

于 2011-10-04T22:50:04.030 回答