Django 3.0关闭Debug模式无法加载media图片与static静态文件
\blog\blog\settings.py
DEBUG = False
STATIC_URL = '/static/'
# 设置上传图片保存在media目录下
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
#STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) # 图片目录
#STATIC_ROOT = os.path.join(BASE_DIR, "/static/") # ,这个用static能python manage.py collectstatic,但是运行django报错(?: (staticfiles.E002) The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting.),用/static/能收集的C盘,具体原因待百度
# STATIC_ROOT = os.path.join(BASE_DIR, "/home/blog/static/") # 正确
#找到解决方法
if DEBUG:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# 设置图片访问统一路由
MEDIA_URL = '/media/'
# 媒体文件配置
CKEDITOR_UPLOAD_PATH = "uploads/" # 上传图片保存路径,如果没有图片存储或者使用自定义存储位置,那么则直接写 ' ' ,如果是使用django本身的存储方式,那么你就指名一个目录用来存储即可。
import socket
# 如果电脑名字DESKTOP-FCJ7BVI打开DEBUG
if socket.getfqdn(socket.gethostname()) == 'DESKTOP-FCJ7BVI':
DEBUG = True
else:
DEBUG = False
ALLOWED_HOSTS = ['*', ]
\blog\home\urls.py
from django.urls import re_path
from django.views import static
from django.conf import settings
urlpatterns = [
re_path(r'^static/(?P<path>.*)$', static.serve, {'document_root': settings.STATIC_ROOT}, name='media'), # 添加这行
re_path(r'^media/(?P<path>.*)$', static.serve, {'document_root': settings.MEDIA_ROOT}, name='media'), # 添加这行
]
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!