静态文件夹未加载

时间:2016-02-06 16:34:28

标签: django

我想将当前登录用户的头像插入标题,但我无法加载文件。我已经检查了已安装的应用程序,它应该从哪个目录看,但无济于事。

这是我的模板:

{% 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>

1 个答案:

答案 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}}