我想将当前登录用户的头像插入标题,但我无法加载文件。我已经检查了已安装的应用程序,它应该从哪个目录看,但无济于事。
这是我的模板:
{% load static from staticfiles %}
<header>
<div id="header_title">App name goes here</div>
<div id="header_nav">
<nav>
{% if user.is_authenticated %}
<a href="home">Home</a>
<a href="feed">Feed</a>
<a href="me">
{% load staticfiles %}
<img src="{% static 'user/'%}{{request.user}}/avatar.png" alt="">
</a>
<a href="notifications">N</a>
<a href="settings">
<div>S</div>
</a>
{% else %}
<a href="login">Log in</a>
<a href="register">Register</a>
{% endif %}
</nav>
</div>
</header>
我的settings.py:
...
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tracks',
...
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',
'django.core.context_processors.static',
'django.core.context_processors.media',
],
},
},
]
...
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
STATIC_URL = '/static/'
AUTH_PROFILE_MODULE = 'tracks.UserProfile'
这不显示图像,而是显示“未找到图像”图标。
这里发生了什么?为什么不加载文件并显示它们?去网址“/static/user/enitoni/avatar.png”给我一个404错误。
如果有帮助,这是渲染的html:
<a href="me">
<img src="/static/user/enitoni/avatar.png" alt="">
</a>
答案 0 :(得分:1)
所以......你定义了STATIC_URL但没有定义STATIC_ROOT或STATIC_FILE_DIRS。 STATIC_URL将加载一个名为'static'的目录中的静态文件,该目录必须位于your_app中:
程序my_app /静态/ my_app应用/ myimage.jpg
并通过
访问 <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>
如果您需要从应用外部加载静态文件,请查看文档:{{3}}