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