无法访问MEDIA文件夹中的视频文件

时间:2015-05-18 14:20:47

标签: python django

这是一个奇怪的。我正在构建一个基本应用程序,让用户上传视频,然后播放它们。简单。当用户上传文件时,其链接存储在mysql中,文件本身存储在web_app / media / videos /中的文件系统中。

在settings.py中:

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

我的相关目录结构:

project/web_app/static/
project/web_app/media/

上传工作正常,然后db条目和视频文件都按预期着陆。问题是我无法通过视频链接访问该文件。现在,在我的视图模板中,我有这个:

{% block body %}
    <div><video src="{{ MEDIA_URL }}{{ path_to_video }}" width=640 height=360 controls></video></div>
    <div><video src="/static/videos/2015/05/18/vid1.mp4" width=640 height=360 controls></video></div>
{% endblock body %}

第一个div显然是我正在尝试使用的,第二个是用于调试 - 你会在一秒钟内看到原因。此模板将生成以下html:

<div><video src="/media/videos/2015/05/18/vid1.mp4" width=640 height=360 controls></video></div>
<div><video src="/static/videos/2015/05/18/vid1.mp4" width=640 height=360 controls></video></div>

再次,如预期的那样。这是事情:第一个链接不起作用,说它找不到文件。但是如果我手动将'videos / 2015 / etc ...'复制到/ static文件夹中,那么第二个链接就会按预期工作。这里发生了什么?媒体文件夹是否有一些权限问题?

我不知道它是否有所作为,但这是在Windows上...谢谢。

1 个答案:

答案 0 :(得分:0)

这是有人使用Django 开发服务器时遇到的问题。这就是我Vibrant. Palette.getVibrantSwatch() Vibrant dark. Palette.getDarkVibrantSwatch() Vibrant light. Palette.getLightVibrantSwatch() Muted. Palette.getMutedSwatch() Muted dark. Palette.getDarkMutedSwatch() Muted light. Palette.getLightMutedSwatch() 中的内容:

urls.py

live / production 上,这应由网络服务器处理。

from django.conf import settings from django.conf.urls.static import static # ... if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # pragma: nocover 评论适用于#pragma套餐。)

上述内容已在Django documentation: Serving files uploaded by a user during development中介绍。另请参阅Serving static files during development