在Django中提供媒体文件

时间:2016-05-31 17:27:35

标签: django file serve

我在开发中运行Django。在settings.py中,我设置了MEDIA_URL

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

然后在ursl.py我有,

if settings.DEBUG:
    urlpatterns += patterns('', url(r'^media/(?P<path>)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT,}),)

据我所知,这应该意味着任何网址媒体/文件名都会提供文件而不是请求它。

在模板中,通过模型,我可以获得文件名和网址。但我不能把它变成一个可链接的路径来下载文件。

<p>File URL link <a href="media{{ item.upload.name }}">media{{ item.upload}}</a></p>

Incidently item.upload和item.upload.name生成相同的字符串。 文件存储中的文件名是./TESTFILE.txt我是否需要在开头删除'./'?

提交26是项目https://github.com/shanegibney/djangoForum

由于

1 个答案:

答案 0 :(得分:1)

我添加了MEDIA_URL标记,这允许下载文件。

<p>URL <a href="/{{ MEDIA_URL }}{{ item.upload.name}}">media{{ item.upload}}</a></p>

同样在urls.py中,我添加了

urlpatterns = [
   ......
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)