在 Django 中提供媒体文件

Serving media files in Django

我是 运行 开发中的 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,}),)

据我了解,这应该意味着任何 url media/filename 都将提供该文件,而不只是请求它。

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

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

顺便说一下,item.upload 和 item.upload.name 产生相同的字符串。 filestore 中的文件名为 ./TESTFILE.txt 是否需要去掉开头的“./”?

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

谢谢

我添加了 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)