在 Django 模板中获取图像时出现代码 404
Posted
技术标签:
【中文标题】在 Django 模板中获取图像时出现代码 404【英文标题】:Code 404 when fetching image in Django template 【发布时间】:2014-08-29 12:44:09 【问题描述】:我正在尝试获取文件夹中的一些图像。路径是正确的,但它们显示为带有代码 404 的断开链接。 我的文件和配置如下: 设置.py
MEDIA_ROOT = os.path.join( PROJECT_DIR, 'media/images/uploads')
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = '/media/images/uploads/'
# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/"
STATIC_ROOT = os.path.join( PROJECT_DIR, 'static')
# URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
'C:\Users\omars_000\Desktop\mytask\mytask\media\images',
'C:\Users\omars_000\Desktop\mytask\mytask\media\images\uploads',
'C:\Users\omars_000\Desktop\mytask\mytask\media',
)
models.py
class Pics(models.Model):
name = models.CharField(max_length=200, null=True)
docfile = models.ImageField(upload_to=content_file_name, null=True, blank=True)
def __unicode__(self): # Python 3: def __str__(self):
return self.docfile
home.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
% load staticfiles %
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Home Page</title>
<link href=" STATIC_URL styles.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="background">
Value of a is imgs.0
<div id="background"><img src="% static "images\background.png" %""></div>
<div id="Shape17copy"><img src="% static "images\Shape17copy.png" %""></div>
<div id="About"><img src="% static "images\About.png" %""></div>
<div id="Layer7">
<img src="% static "images\Layer7.png" %"">
% if imgs %
% for i in imgs %
<img src="i.docfile.url"/>
% endfor %
% else %
% endif %
</div>
<div id="Layer7copy"><img src="% static "images\Layer7copy.png" %""></div>
<div id="Shape17copy2"><img src="% static "images\Shape17copy.png" %""></div>
<div id="RecentWork"><img src="% static "images\RecentWork.png" %""></div>
</div>
</body>
</html>
我的问题可能是什么?!
【问题讨论】:
【参考方案1】:您是否尝试过对 % static %
标签中的图像路径使用正斜杠?
更新:检查静态标签的语法:标签内的文件名使用单引号,并修复每个 img
标签末尾不正确的额外双引号
【讨论】:
"GET" /media/images/uploads/img.jpg HTTP 1.1 404 这就是我在 cmd 中看到的 您的网络服务器(apache、nginx 等)日志说什么?【参考方案2】:我也遇到过这个问题,但是当我使用像这样的硬编码 URL 时它会起作用
<img src="/static/images/background.png" />
而且使用正斜杠
【讨论】:
以上是关于在 Django 模板中获取图像时出现代码 404的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 Thymeleaf 和 Spring Security 项目中插入图像时出现 404 错误