我的项目中存在“静态文件”的问题 我想简单地加载一张图片。 这是我的代码:
views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
# Create your views here.
def D3(request):
template = loader.get_template('appli1/D3.html')
context = {}
return HttpResponse(template.render(context, request))
urls.py
from django.conf.urls import url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from . import views
urlpatterns = [
url(r'^D3$', views.D3, name='D3'),
]
D3.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
{% load staticfiles %}
<img src="{% static "appli1/testimg.png" %}" alt="My image"/>
</body>
</html>
settings.py
STATIC_URL = '/static/'
图片testimg.png位于appli1 / static / appli1 /
中文件D3.html位于appli1 / templates / appli1 /
中感谢您的帮助!
编辑: 我的项目结构对我来说似乎很好,也许我错了。这是它的样子:
test_django/
manage.py
db.sqlite3
test_django/
__init__.py
settings.py
urls.py
wsgi.py
__pycache__/
...
appli1/
__init__.py
admin.py
apps.py
models.py
tests.py
urls.py
views.py
__pycache__/
...
migrations/
...
static/
appli1/
testimg.png
templates/
appli1/
D3.html
答案 0 :(得分:2)
您的代码存在以下问题:
1)检查
中的引号<img src="{% static "appli1/testimg.png" %}" alt="My image"/>
从技术上讲,在上面&#34; {%static&#34;将被读作一个值,然后&#34; %}&#34;作为其他,最后&#34;我的形象&#34;作为另一个。
以下是正确的方法:
<img src="{% static 'appli1/testimg.png' %}" alt="My image"/>
这种方式html读取它&#34; {%static&#39; appli1 / testimg.png&#39; %}&#34;作为一个整体里面的谎言&#39; appli1 / testimg.png&#39;。
2)由于我不知道你的目录结构,也不知道你的根目录,这可能是另一个问题。
如果在你的appli1 / static / appli1&#39;你的静态&#39;与根目录处于同一级别,然后它将正常工作,我认为即使你的模板在&app.93 / appli1 / templates / appli1 /&#39;并且正在加载您的模板。因此证明了“静态”。是在根本层面。
否则,如果不是这样,甚至你的模板都没有加载(因为我只是假设你的模板正在加载),那么你的root&#39;静态&#39;和&#39;模板&#39;文件夹与根目录的级别不同,因此您在html中指定的URL不会发现html和静态文件。
答案 1 :(得分:0)
您可能遇到的问题之一是您的项目 settings.py 文件中的 STATIC_DIR 设置可能未配置。 Django 文档中有一个部分介绍了这部分内容,非常容易理解。在你这样做之后,当你有 {% load static %} 标签时,当你插入一个 {% static 'path/to/file.txt' %} 标签时,Django 将在你的项目主静态文件中查找,然后找到app 文件夹,然后按照您从那里布置的路径进行操作。例如,如果您的文件位于 static/main/images/fart.png 中名为“main”的应用程序中,那么您所要做的就是放置 scr="{% static static/main/images/fart.png%} "