Django 图像文件未呈现
Django image file is not rendering
我的设置文件如下,
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">
.. 但运气不好
但输出是
如果我尝试使用普通的 html 文件,可以说:
<html>
<p> this is bhargav sai</p>
<img src= '/Users/bhargavsaidama/5ai/source/5ai/static/images/Indian-economy.jpg' alt = 'my image'>
</html>
输出为:
甚至我直接从本地主机 url 也能够获取图像:
谁能帮我解决这个问题?
你最好知道如何配置和加载静态文件,参考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 %}
这将适用于您的情况。
如果您来自 Google,
密切关注设置文件中的 DEBUG 状态
访问开发服务器和生产服务器中的媒体文件有点不同。在产品服务器中,它们必须使用您的 Web 服务器进行配置 (apache/nginx)。
请检查 official Doc。
我的设置文件如下,
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">
.. 但运气不好
但输出是
如果我尝试使用普通的 html 文件,可以说:
<html>
<p> this is bhargav sai</p>
<img src= '/Users/bhargavsaidama/5ai/source/5ai/static/images/Indian-economy.jpg' alt = 'my image'>
</html>
输出为:
甚至我直接从本地主机 url 也能够获取图像:
谁能帮我解决这个问题?
你最好知道如何配置和加载静态文件,参考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 %}
这将适用于您的情况。
如果您来自 Google, 密切关注设置文件中的 DEBUG 状态 访问开发服务器和生产服务器中的媒体文件有点不同。在产品服务器中,它们必须使用您的 Web 服务器进行配置 (apache/nginx)。 请检查 official Doc。