django项目如何在debug=False的情况下,加载静态资源,并且部署到腾讯云服务器上,一文解决!

概要

提示:这里可以添加技术概要

这几天自己做建设了一个django+bookstrap的文物藏品管理分析系统。在本地能够成正常运行,但是当我想上传到服务器的时候,把debug模式调成false的时候,静态资源却加载失败了,查阅了许多博文资料,其中良莠不齐,还是没能解决问题,最后综合了各大博主的解决方法,最终成功地加载出了静态资源,并且成功部署到腾讯云服务器上,故记录如下:

初始:本地项目效果展示

系统首页
在这里插入图片描述

第一步:setting文件设置

DEBUG = False

ALLOWED_HOSTS = ['*']

import os
# DeBug = True 时使用
# STATIC_URL = '/static/'
# # 配置静态资源static存放路径
# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, 'static')  # 配置完成后可以访问本地静态资源
# ]

# DEBUG = False 时使用
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')


# 媒体文件配置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

第二步:总的urls的文件设置,而非app下的urls

'''debug=True'''
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
import ArtifactPro.urls
from django.urls import path, include

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

'''debug=Flase'''
from django.contrib import admin
from django.urls import path, include, re_path  # 新增
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve

urlpatterns = [
                  path('admin/', admin.site.urls),
                  path('', include(ArtifactPro.urls)),
                  # 新增
                  re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),
                  re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + \
              static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

第三步:运行迁移数据代码

windows: python manage.py collectstatic
macoc: python3 manage.py collectstatic

运行过程中,如果遇到如下情况:

You have requested to collect static files at the destination
location as specified in your settings:

    /Users/zhangxuhe/PycharmProjects/django项目/数字藏品VIP/Artifact/static

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: 

输入yes,继续即可。

最后:实现

此时,重启runserver,就可以访问静态资源了。 如果还是没访问到,可以尝试清除浏览器缓存。

以下是关于如何部署到云服务器上的思路

本已参考各大博主的解决思路,已经成功部署了一个django到服务器上,但是当我想部署另外一个django项目的时候发现端口被占用了,所以有了此文如下:

初始:服务器条件

我的服务器是腾讯云的轻量服务器,登录服务器后台如下图所示:
在这里插入图片描述
我们需要点击添加规则
在这里插入图片描述
然后, 选择所有IPV4地址,TCP协议,并且设置端口号
在这里插入图片描述
注意!!!这个端口号, 必须是你的服务器 可以允许你访问的端口号,不然的话你在服务器上仍然启动不了, 我就是因为这个被困了好久

查看端口号

我们利用以下的代码就可以查看电脑的端口号,并且选择一个未被使用的,而且允许访问的,并且在 腾讯云的服务期平台上设置好,你的端口这样的话才能被外界访问到!

netstat -ano

结果如下:
活动连接

  协议  本地地址          外部地址        状态           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       852
  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       6072
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       992
  TCP    0.0.0.0:5985           0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:8001           0.0.0.0:0              LISTENING       5464
  TCP    0.0.0.0:8077           0.0.0.0:0              LISTENING       5860
  TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:49664          0.0.0.0:0              LISTENING       644
  TCP    0.0.0.0:49665          0.0.0.0:0              LISTENING       480
  TCP    0.0.0.0:49666          0.0.0.0:0              LISTENING       664
  TCP    0.0.0.0:49667          0.0.0.0:0              LISTENING       1148
  TCP    0.0.0.0:49669          0.0.0.0:0              LISTENING       1868
  TCP    0.0.0.0:49676          0.0.0.0:0              LISTENING       624
  TCP    10.0.16.11:139         0.0.0.0:0              LISTENING       4
  TCP    10.0.16.11:3389        128.134.187.73:59736   ESTABLISHED     992
  TCP    10.0.16.11:3389        211.138.116.181:29060  ESTABLISHED     992
  TCP    10.0.16.11:49681       169.254.0.55:5574      ESTABLISHED     2228
  TCP    10.0.16.11:49682       169.254.0.55:5574      ESTABLISHED     2228
  TCP    10.0.16.11:49704       169.254.0.138:8186     ESTABLISHED     3312
  TCP    10.0.16.11:50944       169.254.0.203:80       TIME_WAIT       0
  TCP    127.0.0.1:5000         0.0.0.0:0              LISTENING       1344
  TCP    [::]:135               [::]:0                 LISTENING       852
  TCP    [::]:445               [::]:0                 LISTENING       4
  TCP    [::]:3389              [::]:0                 LISTENING       992
  TCP    [::]:5985              [::]:0                 LISTENING       4
  TCP    [::]:47001             [::]:0                 LISTENING       4
  TCP    [::]:49664             [::]:0                 LISTENING       644
  TCP    [::]:49665             [::]:0                 LISTENING       480
  TCP    [::]:49666             [::]:0                 LISTENING       664
  TCP    [::]:49667             [::]:0                 LISTENING       1148
  TCP    [::]:49669             [::]:0                 LISTENING       1868
  TCP    [::]:49676             [::]:0                 LISTENING       624
  UDP    0.0.0.0:123            *:*                                    1548
  UDP    0.0.0.0:500            *:*                                    1148
  UDP    0.0.0.0:3389           *:*                                    992

最后

最后就是用这个端口在服务器上启动django项目即可,代码如下:

python manage.py runserver 0.0.0.0:8001

注意,一定是要0.0.0.0, 冒号后面是你选择的端口号

小结

最后就能够成功部署上去啦
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值