一尘不染

Django管理页面缺少CSS

django

我看到这个问题从Django的项目和建议,但仍不能得到这个工作。我的Django Admin页面根本不显示CSS。

这是我当前的配置。

settings.py

ADMIN_MEDIA_PREFIX = '/media/admin/'

httpd.conf

<VirtualHost *:80>
    DocumentRoot /home/django/sgel
    ServerName ec2-***-**-***-***.ap-**********-1.compute.amazonaws.com
    ErrorLog /home/django/sgel/logs/apache_error.log
    CustomLog /home/django/sgel/logs/apache_access.log combined
    WSGIScriptAlias / /home/django/sgel/apache/django.wsgi

    <Directory /home/django/sgel/media>
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /home/django/sgel/apache>
        Order deny,allow
        Allow from all
    </Directory>

    LogLevel warn

    Alias /media/ /home/django/sgel/media/

</VirtualHost>

<VirtualHost *:80>
   ServerName sgel.com
   Redirect permanent / http://www.sgel.com/
</VirtualHost>

另外,我还运行以下命令来创建(我认为)符号链接 ln -s /home/djangotest/sgel/media/admin/ /usr/lib/python2.6/site-packages/django/contrib/admin/media/

更新

在我的httpd.conf文件中

User django
Group django

当我在/media目录中运行ls -l时

drwxr-xr-x 2 root root 4096 Apr  4 11:03 admin
-rw-r--r-- 1 root root    9 Apr  8 09:02 test.txt

该root用户应该改为django吗?

更新2 当我进入ls -la我的/media/admin文件夹

total 12
drwxr-xr-x 2 root root 4096 Apr 13 03:33 .
drwxr-xr-x 3 root root 4096 Apr  8 09:02 ..
lrwxrwxrwx 1 root root   60 Apr 13 03:33 media -> /usr/lib/python2.6/site-packages/django/contrib/admin/media/

问题是,当我导航到时/usr/lib/python2.6/site-packages/django/contrib/admin/media/,文件夹为空。所以我将Django安装中的CSS,IMG和JS文件夹复制到其中/usr/lib/python2.6/site-packages/django/contrib/admin/media/,但仍然无法正常工作


阅读 386

收藏
2020-03-31

共1个答案

一尘不染

除了按照Daniel Roseman的建议更正符号链接之外,你还需要确保运行Apache的用户具有对管理媒体的读取权限。

  • 如果ls -l在媒体目录中,你会看到符号链接吗?
  • 如果你cd admin来自媒体目录,是否可以使用?如果你随后运行,ls可以看到管理媒体吗?
  • 运行Apache的用户是否具有对管理媒体的读取权限?
    如果所有这些方法都起作用,那么请使用你当前的配置和这些命令的结果来更新你的问题,我们将再次进行研究。

对Update的响应:好的,权限看起来不错。看来你的媒体目录中的目录结构有点错误。

/usr/lib/python2.6/site-packages/django/contrib/admin/media/空的事实也令人不安。解决紧迫的问题后,你可能需要在预期的地方考虑重新安装django。

无论如何,这是结构的外观:

$ cd media
$ ls -la
drwxr-xr-x 2 root root 4096 Apr 13 03:33 .
drwxr-xr-x 3 root root 4096 Apr  8 09:02 ..
lrwxrwxrwx 1 root root   60 Apr 13 03:33 admin -> /usr/lib/python2.6/site-packages/django/contrib/admin/media/
-rw-r--r-- 1 root root    9 Apr  8 09:02 test.txt

也就是说,在media/目录内部应该是admin直接调用/admin/mediadjango安装目录的链接。

要解决你的问题,请在media/admin/目录内部运行:

rm media
cd ..
rmdir admin

然后按照Daniel Roseman的答案中的建议重新创建符号链接。

2020-03-31