【问题标题】:Django admin site not showing CSS styleDjango 管理站点未显示 CSS 样式
【发布时间】:2015-04-28 00:44:19
【问题描述】:

我的 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>

目录结构:

/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

settings.py 的最后一部分:

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

STATIC_URL = '/static/'

【问题讨论】:

    标签: django apache


    【解决方案1】:

    做完之后

    1. python manage.py collectstatic
    2. 在 settings.py 中,在 STATICFILES_DIRS 变量中,追加

    ('admin', os.path.join(BASE_DIR, 'static', 'admin'))。这应该工作

    【讨论】:

      【解决方案2】:

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

      cd /home/ubuntu/cs462/mysite
      python manage.py collectstatic
      

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

      STATIC_URL = '/static/'
      STATIC_ROOT = os.path.join(BASE_DIR, 'static')
      

      【讨论】:

      • 什么意思?我没有任何静态内容。这只是 Django 附带的管理站点。我只创建了一个超级用户来登录管理站点,它从我的 models.py 文件的数据库中获取了我的表。
      • Django 管理应用安装了自己的静态内容。您应该首先将它们复制到项目的静态目录中。在使用 Django 的内置开发服务器测试站点时,您无法识别它,但在生产环境中,您需要先运行 collectstatic。
      • 太棒了!有效。我在 settings.py 中进行了更改,然后我需要重新运行python manage.py collectstatic 命令。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2014-07-17
      • 2013-06-23
      相关资源
      最近更新 更多