Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】

文章目录

    • Django项目与服务器环境
    • 连接服务器&安装宝塔面板
    • 在宝塔面板中安装环境
    • 打包Django项目&上传项目到服务器
    • 运行项目
    • 解决静态文件不能加载的问题
    • 完成啦!
    • 参考

Django项目与服务器环境

服务器环境

  • Centos 7.3

项目环境

  • Python 3.8.6
  • Django 2.0.1

连接服务器&安装宝塔面板

  • 连接到服务器,这里以阿里云控制面板中连接到服务器为例:
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第1张图片

注意:先切换到root的权限模式,便于后续的安装工作。

  • 宝塔面板官网中选择Centos版本的链接:
    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
  • 记录下宝塔面板连接的链接、账号、密码:如下图
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第2张图片
  • 根据上面的信息登录到宝塔面板,登录进去后的界面如下:
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第3张图片

在宝塔面板中安装环境

安装Python项目管理插件
注意:好像只有在Centos系统的宝塔面板中才有这个插件,我使用Ubuntu的时候没有找到。

  • 点击宝塔面板左侧中软件商店中,进入后,搜索“python”,就可以看到下面有这个插件,点击安装.
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第4张图片
  • 安装成功后,点击右侧的设置,进入下面的界面,选择版本控制,安装相应的python版本。
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第5张图片

打包Django项目&上传项目到服务器

打包Django项目

  • 进入Django项目中manage.py所在的文件夹的终端,使用下面的命令对项目的依赖包进行打包,生成requirements.txt文件。(这一步骤其实相当于就是把项目中需要安装的第三方库记录到requirements.txt中,到时候在服务器上面根据这个requirements.txt再配置这些第三方库。
pip freeze > requirements.txt

上传Django项目

  • 将Django项目上传到**/www/wwwroot**所在的文件夹中,例如下面的hello项目。
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第6张图片

运行项目

在Python项目管理插件中添加项目

  • 在左右的软件商店里找到Python项目管理插件,然后点击设置,添加项目。里面的各种选项很简单,按实际情况填写就行。
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第7张图片

注意

  • 这里Python一定要选择前面安装的那个版本,另外一定选择uwsgi方式启动
  • 箭头的位置,一定要定位到wsgi.py那个文件,因为这是启动文件。
  • 端口可以自己进行选择,这里默认使用8000,但是到时候访问的网址的时候不需要加端口8000.

映射地址

  • 点击 “映射”,然后输入网址,或者可以直接输入IP地址,例如:123.45.78.10。
  • 然后就可以进入这个网站了,但是注意使用的访问网址是http://123.45.78.10 , 而不是http://123.45.78.10:8000
  • 提醒:这里一定要进行地址映射,很多教程都没有写,否则不能进入网站中。

解决静态文件不能加载的问题

问题:到此为止,这个项目部署已经完成了90% , 但是我们会发现此时的网站没有样式,也就是不能加载css,js,img这些静态文件。

网上大部分教程给出的解决方案

  1. 修改setting.py文件:在setting.py文件中添加下面的代码。
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
STATICFILES_DIRS = (
     os.path.join(BASE_DIR, 'static'),
)
  1. 修改网站配置文件:这一步很有可能出问题,应该按照后面那个模块的方式更改。
    在下面图片中网站的配置文件,添加路径信息。添加的代码为
location /static
    {    
        alias  /www/wwwroot/项目名/static/;
    }

Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第8张图片

  1. 进入python虚拟环境中,收集静态文件:
# 首先激活python虚拟环境
source www/wwwroot/项目文件夹名/项目名_venv/bin/activate
# 进入项目文件夹
cd www/wwwroot/项目文件夹名
# 收集静态文件
python manage.py collectstatic
  1. 重启项目
    Django项目部署到Centos,解决Django静态文件不能加载问题【详细步骤】_第9张图片

正确的配置

  • 上面的修改中其它步骤并没有问题,但是问题出现在第二步。
  • 第二步正确的修改方式应该采用下面的代码:
location ^~ /static/ {
        root /www/wwwroot/项目名/;
 }

完成啦!

到此为止已经完成了使用django的部署啦!

参考

  • 视频链接:包含数据库的部署
  • 参考教程一
  • 参考教程二

你可能感兴趣的:(部署,django,centos,python)