python - 为什么Django不能加载静态图片,但可以通过web url加载图片?
问题描述
在我的 Django 应用程序中,我无法从数据库或本地文件加载图像。但我可以通过图像网络链接加载图像。
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 中的路径 使用不同的图像 从 Db 加载图像等等
但仍然找不到任何答案。另一方面,我可以从谷歌复制图片链接并将其用作 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')
设置.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/')
解决方案
推荐阅读
- reactjs - 类型错误:调用 createStore 时 Object(...) 不是函数
- vuejs2 - 如何在计算中使用 vue2-filters 的方法
- asp.net-core - 找不到类型或命名空间名称“App”?
- php - 如何将 Excel 日期格式化为 PHP?
- twig - 我无法使用 Symfnony 5 使用 render() 创建页面
- shell - 使用 sed 删除两个模式之间的字符
- android - 如何使用广播android将数据从一个应用程序发送到另一个应用程序
- javascript - React - 生产如何读取 .env 文件?
- opencv - findChessboardCorners 失败
- swift - 如何更改安全区域的颜色?