Django显示静态文件夹之外的图像/视频

时间:2017-02-20 13:49:12

标签: python html django web path

我想制作在网站上显示文件树并在网上打印图像/视频的网站 我打算用html标记imgvideo进行打印。但是路径存在一些问题。我的大多数静态文件(如视频或img)都在django项目文件夹之外 例如,django模板源和视图源位于/Users/Knight/My-site/Damotorie_cafe/views.py,图像位于/Applications/MAMP/practice
我试图用python代码获取相对路径并将其用于src属性 当我不使用django并使用本地Web浏览器打开它时,相同的路径运行良好,但是当我用django打开它时,会发生错误。

我是django的首发。谁能帮我? (我在询问之前搜索了它,但大部分问题都是关于上传不显示图片。)

1 个答案:

答案 0 :(得分:0)

您需要在Django中配置静态文件。在settings.py中,您需要设置:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    '/path/to/your/images/outside/web/tree/'
]
STATIC_URL = '/static/'

在开发中,您需要在基本urls.py文件中设置它:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^login', auth_views.login, name='login'),
    ...
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

然后在模板文件中,首先将其设置在模板文件的顶部,以便加载“静态”标记:

{% load staticfiles %}

然后使用静态变量:

<img src="{% static 'path/img' %}"/>

诀窍是,Django搜索STATICFILES_DIRS以在模板文件中找到“路径”,因此结束“路径”必须与您在其他列出的STATICFILES_DIRS中的任何路径不同。它按顺序搜索列表,并且无论如何都会找到第一个匹配的列表。