2016-05-31 73 views
1

我在開發中運行Django。在settings.py我在ursl.py我已經設置了MEDIA_URL在Django中服務媒體文件

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

然後,

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

據我瞭解這應該意味着任何URL媒體/文件名會提供服務的文件而只是要求它。

在模板中,通過模型,我可以獲取文件名和URL。但是我不能把它變成可下載文件的可鏈接路徑。

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

顯然,item.upload和item.upload.name產生相同的字符串。 文件存儲中的文件名是./TESTFILE.txt我需要在開始時去掉'./'嗎?

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

感謝

+1

https://docs.djangoproject.com/en/dev/howto/static-files/ – marcusshep

+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)