在开始之前,请原谅我的英语,全新的HTML,这是我创建的第一款django应用程序。
所以,让我说我想根据表格中的输入查看静态图像以供测试之用,所以如果我输入 goat.jpg 形式,它会显示goat.jpg
这是我的HTML
<!DOCTYPE html>
{% load static %}
<html>
<head>
<title>test</title>
</head>
<body>
<center><img src="{% static "{{staticpath}}" %}" alt="gif" align="middle"/></center>
{{boldmessage}}
这是我的观点
from django.shortcuts import render
from django.http import HttpResponse
from django.template import RequestContext
from django.shortcuts import render_to_response
def generate(request):
context = RequestContext(request)
if request.GET:
path = request.GET.get('path','')
context_dict = {'staticpath':path}
return render_to_response("generated/generated.html", context_dict, context)
路径已经是一个字符串,但是如果我删除了staticpath双引号,django会引发一个异常。那么如何将路径的字符串准确地放在html图像源中,以便正确显示静态图像?谢谢!
答案 0 :(得分:0)
调用{%static'some / path /'%}将调用Django static file finders。如果您要查找的图像位于目录中,并且您只将文件名传递给{%static'some / path'%},则无法找到该文件。
将{{STATIC_URL}}标记作为避免嵌套标记的解决方案。如果您的文件都存储在staticfiles目录的根文件夹中(由settings.py中的STATIC_ROOT设置设置),那么这将有效 -
<img src="{{ STATIC_URL }}{{ staticpath }}"/>
但是,最好实现一个由您的视图调用的函数来搜索您的STATIC_ROOT文件夹和所有子文件夹,以查找文件的完整相对(到STATIC_ROOT)路径并返回它。这种方法很复杂但可行。