Django图像文件未呈现

时间:2017-05-14 04:31:11

标签: html python-3.x django-1.11

我的设置文件如下所示,

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static', 'static_dirs'),)

MEDIA_URL = '/static/images/'
MEDIA_ROOT = '/Users/bhargavsaidama/5ai/source/static/images/'

#MEDIA_ROOT = os.path.join(BASE_DIR,'static', 'images') (tried this too)

我的html加载页面如下所示, 注意:我在这里直接使用文件路径

的index.html:

<!DOCTYPE html>
{% load staticfiles %}
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

我的实际html文件是:

{% extends "index.html" %}


{% block content %}

<div class="content">

    <img src ='/Users/bhargavsaidama/5ai/source/5ai/static/images/Indian-economy.jpg' alt="My image">

    <h2 id = "title"><font face = "Comic sans MS"> {{ post.title }} </font></h2>

    {% for sub_text in post.content %}

    <p id = "data"><font face = "Comic sans MS" size="+0.3"> {{ sub_text }} </font></p>

    {% endfor %}

</div>
{% endblock %}

即使我尝试过使用:

<img src ='Indian-economy.jpg' alt="My image"> 

....但没有运气

但输出是 enter image description here

如果我尝试使用普通的html文件,请说:

<html>
<p>  this is bhargav sai</p> 
<img src= '/Users/bhargavsaidama/5ai/source/5ai/static/images/Indian-economy.jpg' alt = 'my image'>
</html>

输出是: enter image description here

即使是来自本地主机的直接网址也可以获取图片: enter image description here

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您最好知道如何配置和加载静态文件,请参阅official doc.

由于您的jpg位于static/images个文件夹中,只需更改您的实际html:

{% extends "index.html" %}


{% block content %}

{% load static %} #load static directory
<div class="content">

    #load your static image
    <img src ='{% static "images/Indian-economy.jpg" %}' alt="My image">

    <h2 id = "title"><font face = "Comic sans MS"> {{ post.title }} </font></h2>

    {% for sub_text in post.content %}

    <p id = "data"><font face = "Comic sans MS" size="+0.3"> {{ sub_text }} </font></p>

    {% endfor %}

</div>
{% endblock %}

这适用于您的情况。

答案 1 :(得分:0)

如果您来自Google, 请密切关注您的设置文件中的DEBUG状态 访问dev服务器和prod服务器中的媒体文件有点不同。在prod服务器中,他们必须配置您的Web服务器(apache / nginx)。 请查看official Doc