我尝试使用django的static
模板标签来显示SVG,但它似乎并不认为SVG是有效的图片网址。这就是我目前所拥有的:
import mimetypes
mimetypes.add_type("images/svg+xml", ".svg", True)
{% load staticfiles %}
<img src="{% static 'images/right-arrow.svg' %}" />
至少在我的view.py中,它识别出SVG mimetype:
print(mimetypes.guess_type(static('images/right-arrow.svg')))
# returns ('images/svg+xml', None)
SVG会显示在非django页面中,如果我尝试在新的浏览器选项卡中打开SVG路径,它将下载SVG。
我目前正在使用python 3.4和django 1.8.4。
答案 0 :(得分:0)
我发现了这个问题。在settings.py
中,它应为mimetypes.add_type('image/svg+xml', '.svg', True)
。 image
应该是单数。
答案 1 :(得分:0)
我遇到了类似的问题。我建议你使用: src =“{{STATIC_URL}} images / right-arrow.svg”而不是src =“{%static'images / right-arrow.svg'%}”
svg格式可能并不总是识别django获取静态文件内容的方法。希望这有助于:)
答案 2 :(得分:0)
将此添加到您的 settings.py 文件中。
import mimetypes
mimetypes.add_type("image/svg+xml", ".svg", True)
mimetypes.add_type("image/svg+xml", ".svgz", True)
在您的情况下,您已在add_type中添加了图像,该图像应为单数(图像)。
答案 3 :(得分:0)
您正在加载静态文件并使用静态文件?
这是错误的。
尝试将 {% load staticfiles %} <img src="{% static 'images/right-arrow.svg' %}" />
更改为
{% load static %} <img src="{% static 'images/right-arrow.svg' %}" />
并且您还需要考虑应该在哪个应用程序中找到您的静态文件。