Django显示静态文件夹之外的图像/视频
Posted
技术标签:
【中文标题】Django显示静态文件夹之外的图像/视频【英文标题】:Django show image/video which is outside of static folder 【发布时间】:2017-07-09 20:03:09 【问题描述】:我想制作一个在网络上显示文件树并在网络上打印图像/视频的网站。
我打算用html标签img
和video
打印它。但是路径存在一些问题。我的大部分静态文件(如视频或 img)都位于 django 项目文件夹之外。
例如 django 模板源和视图源在/Users/Knight/My-site/Damotorie_cafe/views.py
,图像在/Applications/MAMP/practice
我尝试使用 python 代码获取相对路径并将其用于 src 属性。
当我不使用 django 并使用本地 Web 浏览器打开它时,相同的路径效果很好,但是当我使用 django 打开它时会出现错误。
我是 django 的初学者。谁能帮我? (我在问之前搜索了它,但大多数问题是关于上传不显示图像。)
【问题讨论】:
【参考方案1】:您需要在 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)
然后在你的模板文件中,首先将它设置在模板文件的顶部,这样你就加载了'static'标签:
% load staticfiles %
然后你使用静态变量:
<img src="% static 'path/img' %"/>
诀窍是,Django 搜索 STATICFILES_DIRS 以在您的模板文件中找到该“路径”,因此最终“路径”必须与您在其他列出的 STATICFILES_DIRS 中的任何内容不同。它按顺序搜索列表,无论如何都会找到第一个匹配的。
【讨论】:
以上是关于Django显示静态文件夹之外的图像/视频的主要内容,如果未能解决你的问题,请参考以下文章