在 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的主要内容,如果未能解决你的问题,请参考以下文章

通过模板渲染图像时出现 Django Unicode 错误

在 django 开发中加载静态文件时出现 404 错误

尝试在 Thymeleaf 和 Spring Security 项目中插入图像时出现 404 错误

在 cognito 用户池中添加 lambda 触发器时出现 404 错误

显示来自 Firebase 存储的图像时出现 404 错误

无法将图像上传到 Django 项目,获取表单对象没有属性“保存”