Django管理员网站没有显示CSS样式

Roc*_*Lee 9 apache django

我的Django管理员网站(它是完全默认的,不是自定义的)没有显示预期的CSS.

它看起来像这样:

在此输入图像描述

我可以登录:

在此输入图像描述

但它应该看起来像这样:

在此输入图像描述

我该如何解决?

其他可能有用的信息:

我在端口80上运行Amazon EC2实例并使用真实URL连接到它.我使用本教程进行设置:http: //www.nickpolet.com/blog/deploying-django-on-aws/1/

在该教程之后,我将此代码放入一个名为的文件中/etc/apache2/sites-enabled/mysite.conf.我不明白这段代码在做什么,所以我认为它可能与问题有关.

/etc/apache2/sites-enabled/mysite.conf:

WSGIScriptAlias / /home/ubuntu/cs462/mysite/mysite/wsgi.py
WSGIPythonPath /home/ubuntu/cs462/mysite
<Directory /home/ubuntu/cs462/mysite/mysite>
    <Files wsgi.py>
        Order deny,allow
        Require all granted
    </Files>
</Directory>

Alias /media/ /home/ubuntu/cs462/mysite/media/
Alias /static/ /home/ubuntu/cs462/mysite/static/

<Directory /home/ubuntu/cs462/mysite/static>
    Require all granted
</Directory>

<Directory /home/ubuntu/cs462/mysite/media>
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

目录结构:

/home/ubuntu/cs462/
        mysite/
            manage.py
            db.sqlite3
            mysite/
                __init__.py
                __init__.pyc  
                settings.py  
                settings.pyc  
                urls.py  
                wsgi.py
            homepage/
                admin.py  
                admin.pyc  
                __init__.py  
                __init__.pyc  
                migrations  
                models.py  
                models.pyc  
                tests.py  
                views.py
Run Code Online (Sandbox Code Playgroud)

settings.py的最后一部分:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/

STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)

Sel*_*cuk 20

您的Apache配置要求所有静态内容(CSS,JS,图像等)都应位于mysite/static目录中.您应该首先将应用程序中的静态内容收集到mysite/static目录中:

cd /home/ubuntu/cs462/mysite
python manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)

更新:如果您没有为静态内容指定位置,则应将以下行添加到settings.py:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Run Code Online (Sandbox Code Playgroud)

  • Django管理员应用程序安装了自己的静态内容.您应该首先将它们复制到项目的静态目录中.使用Django的内置开发服务器测试站点时,您无法识别它,但是对于生产,您需要先运行collectstatic. (3认同)