为什么Django不能加载静态图像,但可以通过web url加载图像?

2024-04-27 04:57:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的Django应用程序中,我无法从DB或本地文件加载图像。但我可以通过图片链接加载图片

HPGRM\
    hpgrm\
        setting.py and other files
    mahasabha\
        app.py and other files
    static\
        images\
           image1.JPG
    templates\
        base.html
    manage.py
    db.sqlite3

模板:

    {% load static %}
    <img src="{% static '/orange.jpg' %}" />
    or 
    <img src="{% static 'images/orange.jpg' %}" />


    #This is working perfectly :-
    <img src="http://www.clipartbest.com/cliparts/Kcj/p5B/Kcjp5Bb6i.png" class="img_size" alt="NewALT" />

我尝试了互联网上所有可能的方法 已将静态目录移动到项目中的所有其他可用目录 在settings.py中更改了路径 使用不同的图像 从数据库加载图像 还有更多

但仍然找不到任何答案。 另一方面,我可以从google复制图像链接,并将其作为src='image.link.from.google'使用,并且可以成功加载图像 [在此处输入图像描述][1]

#here is error file
PS E:\Abhi\HPGRM\hpgrm> py manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
April 27, 2020 - 21:39:23
Django version 3.0.5, using settings 'hpgrm.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[27/Apr/2020 21:39:28] "GET /home/ HTTP/1.1" 200 3189
Not Found: /home/{% static 'mahasabha/images/img.png' }
Not Found: /home/{% static 'mahasabha/images/orange.jpg' }
[27/Apr/2020 21:39:28] "GET /home/%7B%%20static%20'mahasabha/images/img.png'%20%7D HTTP/1.1" 404 2261
[27/Apr/2020 21:39:28] "GET /home/%7B%%20static%20'mahasabha/images/orange.jpg'%20%7D HTTP/1.1" 404 2270
[27/Apr/2020 21:44:17] "GET /home/ HTTP/1.1" 200 3189
Not Found: /home/{% static 'mahasabha/images/orange.jpg' }
Not Found: /home/{% static 'mahasabha/images/img.png' }
[27/Apr/2020 21:44:17] "GET /home/%7B%%20static%20'mahasabha/images/orange.jpg'%20%7D HTTP/1.1" 404 2270
[27/Apr/2020 21:44:17] "GET /home/%7B%%20static%20'mahasabha/images/img.png'%20%7D HTTP/1.1" 404 2261
[27/Apr/2020 21:44:47] "GET /home/ HTTP/1.1" 200 3208
Not Found: /home/{% static 'mahasabha/images/orange.jpg' }
[27/Apr/2020 21:44:47] "GET /home/%7B%%20static%20'mahasabha/images/orange.jpg'%20%7D HTTP/1.1" 404 2270
[27/Apr/2020 21:59:01] "GET /home/ HTTP/1.1" 200 3287
Not Found: /home/{% static 'mahasabha/images/orange.jpg' }
[27/Apr/2020 21:59:02] "GET /home/%7B%%20static%20'mahasabha/images/orange.jpg'%20%7D HTTP/1.1" 404 2270



  [1]: https://i.stack.imgur.com/FeVVZ.png
#Views.py
from django.shortcuts import render
from django.http import HttpResponse


def index(request):
    return render(request, 'index.html')

setting.py

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DEBUG = True
ALLOWED_HOSTS = []

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mahasabha.apps.MahasabhaConfig',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates')
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

...

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

Tags: pathdjangopyhttphomeimggetos