django后台使用summernote,MEDIA路径问题

发布于 2022-09-07 21:41:23 字数 1148 浏览 19 评论 0

题目描述

DEBUG = False 时找不到图片路径,其他样式文件都能加载

setting.py 文件

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = False
STATIC_URL = '/static/'
if DEBUG:
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static'),
    ]
else:
    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

MEDIA_URL = '/media/'

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

路由信息

urlpatterns = [
    ...
    path('summernote/', include('django_summernote.urls')),
    path('archives/<str:year>/<str:month>', blog_views.archives, name='archives'),
    path('category/<str:id>', blog_views.category, name='category'),
]

# 处理 DEBUG = False情况找不到静态资源
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
else:
    urlpatterns += [
        url(r'^static/(?P<path>.*)$', serve,
            {'document_root': settings.STATIC_ROOT}),
    ]

clipboard.png

目录结构
网上查找相关问题试了下还是没解决, DEBUG = True 时才可以正常显示

初学,有点不太懂

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

音盲 2022-09-14 21:41:23

debug=False时,开发服务器,也就是python manage.py runserver 跑起来的服务器,是不会处理静态资源的,所以找不到.
静态资源需要使用nginx或者apache之类的工具维护.

空心空情空意 2022-09-14 21:41:23
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
else:
    urlpatterns += [
        url(r'^static/(?P<path>.*)
, serve, {'document_root': settings.STATIC_ROOT}),
        url(r'^media/(?P<path>.*)
, serve, {'document_root': settings.MEDIA_ROOT}), # 加一条MEDIA_URL的映射
    ]
傾旎 2022-09-14 21:41:23

你上面设置的效果是 MEDIA_ROOT :
project/static/media/

最终的产生的 MEDIA_URL:
/media/static/media/

旧版本的Django中有规定过,media和static貌似不能同一目录的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文