django + uwsgi + nginx (手动部署) 解决后台及前端样式消失的问题

2 篇文章 0 订阅
1 篇文章 0 订阅

django + uwsgi + nginx (手动部署) 解决后台及前端样式消失的问题


首先给大家分享一下django中settings配置文件中参数的作用,详情见https://docs.djangoproject.com/en/3.0/ref/settings/#std:setting-STATIC_ROOT

1.设置settings参数

1.在之前请在settings.py将静态文件的位置设置好,本人的静态文件==全部==在项目的根目录下的static文件夹中,根目录就是图中的BASE_DIR,然后在STATICFILES_DIRS中添加,同时将STATIC_URL与STATIC_ROOT设置好,这两最好一样,下面的
MEDIA_ROOT和MEDIA_URL是网站中用户的头像之类的存放路径。设置完成以后在控制台执行python manage.py collectstatic,系统会自动将全部的静态资源放到static中。

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

MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'

2. 设置urls中的路由

2.在主路由urls.py中,与settings文件在同一目录下,将静态文件的URL和ROOT添加进去。媒体文件同理

urlpatterns = [
    path('admin/', admin.site.urls),
    ......
    ......
] + static(settings.MEDIA_URL,  document_root=settings.MEDIA_ROOT)
+static(settings.STATIC_URL,  document_root=settings.STATIC_ROOT)

3.将nginx.conf文件的location配置好

3.location 后跟的必须是你在settings文件中配置的路径

server {
                listen 80 ;
                server_name 192.168.71.6 ;
                location / {
                        uwsgi_pass 192.168.71.6:8000 ;
                        include uwsgi_params ;
                }
                location /static/ {
                        alias /home/gck/django_love_download/static/ ;
                }
                location /media/ {
                        alias /home/gck/django_love_download/media/ ;
                }
        }

将以上几步解决以后,重启wsgi,和nginx即可恢复样式,注意static中的是系统收集全部样式,不管是前端还是admin后台都在一起,所以静态样式只用一个路径。

线上部署的话注意nginx里面的ip和uwsgi里面的ip

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统上部署Django + nginx + uWSGI的步骤如下: 1. 安装必要的软件 在Linux系统上安装必要的软件包,包括Python、pip、nginxuWSGI等。 2. 创建Django项目 使用Django创建一个新项目或使用现有的Django项目。 3. 配置uWSGIDjango项目的根目录下创建一个uwsgi.ini文件,用于配置uWSGI。示例配置如下: ``` [uwsgi] # 指定运行模式为WSGI http = :8000 # 指定Django应用的wsgi模块 wsgi-file = myproject.wsgi # 指定进程数 processes = 4 # 指定线程数 threads = 2 # 指定静态文件路径 static-map = /static=/path/to/static # 指定日志路径 logto = /path/to/logfile ``` 其中,http参数指定了监听的端口号,wsgi-file参数指定了Django应用的wsgi模块,processes参数指定了进程数,threads参数指定了线程数,static-map参数指定了静态文件的路径,logto参数指定了日志文件的路径。 4. 配置nginxnginx的配置文件中添加以下内容: ``` server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; } location /static { alias /path/to/static; } } ``` 其中,server_name指定了域名,access_log和error_log指定了日志文件的路径,uwsgi_pass指定了uWSGI的地址和端口号,include指定了uWSGI的参数。 5. 启动uWSGI服务 使用以下命令启动uWSGI服务: ``` uwsgi --ini uwsgi.ini ``` 6. 启动nginx服务 使用以下命令启动nginx服务: ``` sudo service nginx start ``` 这样就完成了Django + nginx + uWSGI部署。可以通过访问该网站的域名来验证是否部署成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值