我想制作在网站上显示文件树并在网上打印图像/视频的网站
我打算用html标记img
和video
进行打印。但是路径存在一些问题。我的大多数静态文件(如视频或img)都在django项目文件夹之外
例如,django模板源和视图源位于/Users/Knight/My-site/Damotorie_cafe/views.py
,图像位于/Applications/MAMP/practice
我试图用python代码获取相对路径并将其用于src属性
当我不使用django并使用本地Web浏览器打开它时,相同的路径运行良好,但是当我用django打开它时,会发生错误。
我是django的首发。谁能帮我? (我在询问之前搜索了它,但大部分问题都是关于上传不显示图片。)
答案 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中的任何路径不同。它按顺序搜索列表,并且无论如何都会找到第一个匹配的列表。