django后台使用summernote,MEDIA路径问题
题目描述
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}),
]
目录结构
网上查找相关问题试了下还是没解决, DEBUG = True 时才可以正常显示
初学,有点不太懂
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
debug=False时,开发服务器,也就是python manage.py runserver 跑起来的服务器,是不会处理静态资源的,所以找不到.
静态资源需要使用nginx或者apache之类的工具维护.
你上面设置的效果是 MEDIA_ROOT :
project/static/media/
最终的产生的 MEDIA_URL:
/media/static/media/
旧版本的Django中有规定过,media和static貌似不能同一目录的。