Django 管理页面缺少 CSS

新手上路,请多包涵

我在 这里 看到了来自 Django Projects 的这个 问题 和建议,但仍然无法让它发挥作用。我的 Django 管理页面根本不显示 CSS。

在此处输入图像描述

这是我目前的配置。

设置.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 当我在我的 /media/admin 文件夹中输入 ls -la

 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/ 但它仍然没有工作

原文由 super9 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 706
2 个回答

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

  • 如果您在媒体目录中执行 ls -l ,您看到符号链接了吗?
  • 如果您 cd admin 从您的媒体目录中,它可以工作吗?如果你然后运行 ls 你能看到管理媒体吗?
  • 运行 Apache 的用户是否具有对管理媒体的读取权限?

如果所有这些都有效,那么请使用您当前的配置和这些命令的结果更新您的问题,我们将再看一遍。

对更新的响应:好的,权限看起来没问题。看起来您的媒体目录中的目录结构有点错误。

/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/media 安装的 django 目录。

要修复你所拥有的,在 media/admin/ 目录中运行:

 rm media
cd ..
rmdir admin

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

原文由 Sean W. 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个问题的一个简单答案是将 admin 和 static 文件夹移动到 public_html

我遇到了这个问题,它成功了试试

原文由 Hamideh Kavoosi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题