• Django线上项目后台admin不显示问题


    记一次django项目的线上部署错误,django+nginx

    一、问题描述

    在将django项目部署到阿里云(nginx作为web服务器)上之后发现出现后台管理界面admin不显示样式。

    二、问题分析

    1、静态资源指向失效

    打开浏览器查看css资源后发现,虽然文件指向项目文件中的静态资源,但是static目录下却没有相应的css和js资源
    尝试在项目路径下收集样式

    python manage.py collectstatic
    

    显示报错

    django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
    

    由报错信息大概得之跟路径配置静态文件路径有关

    2、本地环境

    在本地时,却没有出现问题

    3、查找差别

    在本地部署到线上后主要是将settings.py配置文件中的debug模式做了修改,

    
    DEBUG = True
    
    ALLOWED_HOSTS = []
    

    改为

    DEBUG = False
    
    ALLOWED_HOSTS = ["*"]
    

    三、问题解决

    在debug为True的模式下,django的静态文件都有内部自己管理,文件都在django内部,而部署线上之后无法正常显示后台admin的静态文件,就需要指定静态文件的目录
    这里直接在settings.py中设置指定的静态文件目录:

    STATIC_ROOT  = os.path.join(BASE_DIR, 'static')#指定样式收集目录
    #或
    STATIC_ROOT = '/www/mysite/mysite/static'  #指定样式收集目录
    

    然后收集CSS样式,在终端输入:

    python manage.py collectstatic
    运行这个命令之后,就会自动把后台CSS样式和其他相关文件资源收集到/static/目录下。

    刷新页面就能恢复样式!

  • 相关阅读:
    java反射——字段
    java反射——方法
    java反射——构造方法
    代构建高可用分布式系统的利器——Netty
    JavaEE复习计划
    Java基础复习计划(三)
    Java基础复习计划(二)
    Java基础复习计划
    关于内网穿透的相关内容
    Docker化你的应用
  • 原文地址:https://www.cnblogs.com/welan/p/10854186.html
Copyright © 2020-2023  润新知