【问题标题】:CSS is not showing in the admin page -DjangoCSS未显示在管理页面中-Django
【发布时间】:2023-03-04 14:57:01
【问题描述】:

所以我将我的网站上传到 digitalocean,当我进入管理页面时,CSS 没有显示

我访问了所有这些网站,但似乎没有任何效果

Django doc-static files

Pythonanywhere-DjangoStaticFiles

* -why my django admin site does not have the css style

我设置了我的 STATIC_ROOT 和 STATIC_URL,然后我运行了

python manage.py collectstatic

这是我的设置

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,  '/home/django/django_project/django_project/static')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/'), 
]

【问题讨论】:

  • 你是如何部署它的?你确定你的 nginx/apache 配置为提供静态文件了吗?
  • 你说得对,我的配置文件有问题,谢谢@JonClements

标签: python django digital-ocean


【解决方案1】:

您正在为您的连接指定一个绝对路径。

os.path.join(BASE_DIR, arg2) 表示加入当前正在执行的目录并附加第二个参数。

【讨论】:

  • 我应该这样写
  • STATIC_ROOT ='/home/django/django_project/django_project/static'
【解决方案2】:

将这些行添加到您的 settings.py 文件中

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

【讨论】:

  • 我做了,但没有任何改变。当我在本地服务器上运行它时它工作正常,但是当我投入生产时它没有出现
  • 如何在生产环境中为 Django 应用提供服务?如果没有有关您的配置(nginx confs、gunicorn 等)的更多信息,我们将无法为您提供帮助。
  • 是 nginx 为您提供静态文件,您应该在 nginx.conf location /static/ { alias /home// 中添加这些行; }