Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django;从视图传递到模板的模型对象图像的显示问题_Django_Templates_Nginx_Views_Media - Fatal编程技术网

Django;从视图传递到模板的模型对象图像的显示问题

Django;从视图传递到模板的模型对象图像的显示问题,django,templates,nginx,views,media,Django,Templates,Nginx,Views,Media,创建了一个带有名称、说明和django admin图像的新项目,并附加了图像,我看到图像上传时会弹出到服务器上的媒体文件夹中。我将项目从视图传递到模板。项目名称、说明显示在网站上,但图像('image.jpg')没有显示。有什么想法吗?也许nginx导致图像被隐藏了?我用的是nginx,gunicorn,django 注意:在Chrome上,它显示一个破损的图像图标。浏览器上的源代码显示。我注意到静态文件的格式为:,显示良好。也许我的问题映像应该有媒体/app1/ 我的最终目标是禁用一个图形/图

创建了一个带有名称、说明和django admin图像的新项目,并附加了图像,我看到图像上传时会弹出到服务器上的媒体文件夹中。我将项目从视图传递到模板。项目名称、说明显示在网站上,但图像('image.jpg')没有显示。有什么想法吗?也许nginx导致图像被隐藏了?我用的是nginx,gunicorn,django

注意:在Chrome上,它显示一个破损的图像图标。浏览器上的源代码显示
。我注意到静态文件的格式为:
,显示良好。也许我的问题映像应该有媒体/app1/

我的最终目标是禁用一个图形/图像,但该图像在服务器上的一个单独应用程序的媒体文件夹中经常会被覆盖,并且会发生更改。这样,观众可以获得最新的图像

简化的文件结构,便于查看:

-website1
-media
 image.jpeg
+static
-app1
 -templates
  -app1
   index.html
   layout.html
-website1
 settings.py
 ..
website1 URL.py:

from django.contrib import admin
from django.urls import path, include
from django.conf.urls import include, url
from django.conf.urls.static import static
from website1 import settings

urlpatterns = [
    path('admin/',admin.site.urls),
    path('app1/',include('app1.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
app1的URL.py:

from django.conf.urls import url
from . import views
from django.urls import path, include

urlpatterns = [
    path('', views.index,name='index'),
]
settings.py:

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

MEDIA_URL = '/media/'
MEDIA_ROOT= 'media/'
views.py:

from django.shortcuts import render
from django.http import HttpResponse
import datetime

from PIL import Image
from django.core.files import File
from django.conf import settings
from io import BytesIO
import os
from app1.models import Item

def index(request):
    now = datetime.datetime.now()
    return render(request,'app1/index.html', {
        'Data':now,
        'itemContext':Item.objects.get(id=1)
    })
index.html:

{% extends 'app1/layout.html' %}
{% block content %}
<h1 align="center">{{Data}}</h1>
<h2 align="center">
    {% load static %}
    <img src="{% static "sentiment_analysis/image.jpeg" %}" alt="No immage"/>
</h2>
<h4>

    {{itemContext.name}}
    {{itemContext.description}}
    <img src="{{ itemContext.image }}"/>

</h4>
{% endblock %}
nginx/sites-aviable.conf:

...
...
root /usr/share/nginx/html;
index index.html index.htm;

location /static/ {
    alias   /home/jeff/website1/static/;
}

location /media/ {
    alias /home/jeff/website1/media/;
}
...
...

[解决方案是一个文件权限问题…请参阅评论]

在图像src中,您有双引号,因此src不起作用。用它替换它,您应该很好

<img src="{% static 'sentiment_analysis/image.jpeg' %}" alt="No immage"/>



eidt your code is like that 
<img src="{% static " #this quotes ends here 
sentiment_analysis/image.jpeg # this isnt inside any quotation 
" %}" # second quotation start and end here 

你的代码是这样的吗
在这里,你应该重申:

用这个


您在上面粘贴的线条/图像效果良好。与我的问题相关的线条和图像是,你到底想修复什么??只需将单引号放在双引号内,整个情绪分析/image.jpeg实际上不在任何引号内检查我的编辑我改为单引号,图像显示为双引号或单引号。您的解决方案不起作用。。。事实上,我以前有itemContext.image.url,但是当我尝试一些东西时,我忘记把它放回去了。仍然不起作用。当您右键单击源代码并在“新建”选项卡中打开时,它是否打开或您得到404?右键单击什么?如果是图像,那么如果我尝试在新窗口中打开损坏的图像图标,如果出现403禁止错误
<img src="{% static 'sentiment_analysis/image.jpeg' %}" alt="No immage"/>



eidt your code is like that 
<img src="{% static " #this quotes ends here 
sentiment_analysis/image.jpeg # this isnt inside any quotation 
" %}" # second quotation start and end here 
<img src="{{ itemContext.image }}"/>
<img src="{{ itemContext.image.url }}"/>