django使用simpleui 提示静态文件404错误

背景

腾讯云服务器、宝塔面板、python项目管理器部署django项目。

使用simpleui的django项目部署到服务器上,nginx作为前端服务器。访问网站时,使用界面一切良好,访问网站后台管理系统时,出现net::ERR_ABORTED 404 (Not Found)报错。

原因

大部分项目都是使用nginx来作为前端服务器,然后将请求转给给Django,静态文件就配置为Django的静态目录。

在默认的情况下,配置了之后,Django可以正常使用和访问静态文件,当用一些第三方框架的时候,如django-simpleui或者simplepro,就会出现无法访问这些框架的静态资源文件

也可见simpleui社区的官方原因解答

解决思路

思路就和simpleui社区的官方解答一样,使用命令

python manage.py collectstatic

对simpleui框架的静态资源文件进行收集。

但在这个过程中我遇到一些问题:

  1. python项目管理器中的python解释器与linux全局的python解释器不同,不可直接使用python命令。如我的服务器上,python对应的是2.7,python3对应的是3.6,这些都是全局解释器,而python项目管理器中安装的是3.9。
    在这里插入图片描述
    在这里插入图片描述
  2. django项目使用的python环境又是项目虚拟环境中的python解释器,执行命令需要进入虚拟环境。
  3. 静态资源收集后,nginx配置的相应修改。

问题解决

  1. 第一个问题的解决,推荐一篇文章,在这篇文章中,我大致搞懂了linux系统的python解释器如何寻找位置,以及设置软链接等。虽然这篇文章在一些地方有误,我已在它的评论区进行指正,大家可以结合我的评论一起看。 最重要一点就是,python项目管理器的python解释器位置位于
/www/server/python_manager/versions/3.9.7

ps : 3.9.7是我安装的python版本,根据安装的版本不同可进行更改。

  1. 第二个问题解决,我找了一些文章,都是教怎么在linux系统中进入虚拟环境,如这篇文章
    ,但这些都是系统全局的python解释器建的虚拟环境,而我使用的是python项目管理器中的python解释器建的虚拟环境,略有不同。
    所以,为了贪图一点方便,我直接对虚拟环境中的python解释器设置了软链接
ln -s /www/wwwroot/my-blog/126ac9f6149081eb0e97c2e939eaad52_venv/bin/python3.9    /usr/bin/python3.9_v

上述命令的两个路径地址,第一个是我项目中虚拟环境的python解释器,第二个是我所指定的软链接名称,为python3.9_v,这样就可以在命令行直接使用python3.9_v了。
在这里插入图片描述
然后就可以执行收集静态文件的命令:

python3.9_v manage.py collectstatic

注意执行这个命令时,要cd到项目根目录,即有manage.py文件的目录。
执行效果如下图:
在这里插入图片描述
选yes(Qyt_static)是我用来收集静态文件新建的文件夹,
在这里插入图片描述
由于我刚进行过静态文件收集,所以是0个文件更改,一般都不会是0个文件更改的。

  1. 进行过静态文件收集后,nginx的配置需要进行一定的更改(其实是我之前未更改,后发现的错误)
    在这里插入图片描述
    这里修改成收集静态文件的文件夹。

  2. 最后,在python项目管理器中将项目重启,就可以正常访问了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值