安迪_963

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

首先说下具体情况:

django 1.9

python3.5

在setting已经设置:

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

 

url中设置:

[....
url(r'^media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT}), ]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

  

models中定义:

    image = models.ImageField(upload_to="blog/%Y%m",verbose_name='封面图', blank=True)

 

html中:

<a href="#" class="thumbnail">
<img src="{{ MEDIA_URL }}{{ article.image }}" alt="..."/> </a>

  

但是,前端图片就是显示不出来,而且奇怪的是,路径解析成了我的app的名字(blog)

前端显示情况:

然后就是各种google, 各种百度, 最后还是stackoverflow上看到一个,写要加下面这个:

[....
url(r'^media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT}),
]+ st

但是很明显,我已经加了,但这时我看到他贴出来的setting中的templates中:

'django.template.context_processors.media',
注: django1.9 之前是:'django.core.context_processors.media'

 是的,没错,关键就在这里了,templates中加上这个,才能正确解析出来.

(ps, 好久没更新了,本地onenote写了,又不想在博客上再写一遍.)

 

posted on 2018-02-28 09:22  Andy_963  阅读(746)  评论(0编辑  收藏  举报