立秋6789 2024-04-05 15:14 采纳率: 89.7%
浏览 9
已结题

Django项目部署到Ubuntu上css样式丢失

Django项目部署到Ubuntu上css样式丢失
网站:http://www.ctxpython.cn/
使用的是nginx+gunicorn部署。
自我排查:
1.静态文件已经收集到collectedstatic文件夹
2.django项目路径:/root/python/djangoblog
3.nginx配置的静态文件路径没错

nginx配置文件内容如下:

    listen 80;
    server_name www.ctxpython.cn;
    root /root/python/djangoblog/;

    access_log /var/log/nginx/django_access.log;
    error_log /var/log/nginx/django_error.log;

    location /static/ {
        alias /root/python/djangoblog/collectedstatic/;
        expires max;
        access_log        off;
        log_not_found     off;
    }
    location /media {
        # 静态文件配置
        alias /root/python/djangoblog/uploads/;
        expires max;
    }
    location ~ \.py$ {
        return 403;
    }

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
        if (!-f $request_filename) {
            proxy_pass http://127.0.0.1:8000;
            break;
        }
    }

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-05 18:02
    关注

    【以下回答由 GPT 生成】

    ### 问题分析
    根据您提供的信息,您在Ubuntu上部署了一个Django项目,使用了nginx + gunicorn。尽管您已经将静态文件收集到collectedstatic文件夹,并且检查过django项目路径为/root/python/djangoblog,并确认nginx配置的静态文件路径无误,但CSS样式仍然丢失。
    
    ### 可能的解决方案
    1. 确保Django项目中设置了正确的STATIC_URL和STATIC_ROOT
       - 在settings.py文件中,确保STATIC_URL和STATIC_ROOT已经设置正确,例如:
         ```python
         STATIC_URL = '/static/'
         STATIC_ROOT = os.path.join(BASE_DIR, 'collectedstatic')
         ```
    
    2. 检查STATICFILES_DIRS配置
       - 在settings.py文件中,检查STATICFILES_DIRS配置是否正确,该配置用于指定额外的静态文件路径,例如:
         ```python
         STATICFILES_DIRS = [
             os.path.join(BASE_DIR, 'static'),
         ]
         ```
    
    3. 确认nginx配置中的静态文件路径是否正确
       - 检查nginx配置文件中location /static/的alias路径是否正确指向collectedstatic文件夹,确认路径是否完整,例如:
         ```
         location /static/ {
             alias /root/python/djangoblog/collectedstatic/;
             expires max;
             access_log off;
             log_not_found off;
         }
         ```
    
    4. 检查静态文件是否被正确收集
       - 在项目路径下运行命令收集静态文件:
         ```bash
         python manage.py collectstatic
         ```
       - 确认是否成功将静态文件收集到了collectedstatic文件夹中。
    
    5. 检查文件权限
       - 确保nginx用户有权限访问collectedstatic文件夹及其中的文件,可以使用chown和chmod命令设置权限。
    
    6. 重启服务
       - 在修改配置文件或静态文件后,重启nginx和gunicorn服务以使更改生效:
         ```bash
         sudo systemctl restart nginx
         sudo systemctl restart gunicorn
         ```
    
    如果您在尝试上述解决方案后问题仍然存在,请提供更多相关信息以便我们更好地帮助您解决问题。谢谢!
    


    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月5日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?