css风格的背景图像来自django的静态文件

时间:2018-02-07 13:55:55

标签: css django image django-staticfiles

我使用此template在django项目中创建主页,但我无法正确显示背景图像(bg.jpg)

背景图片用作css文件中的foollows:

.wrapper.style3 {
    background-color: #000;
    color: #bfbfbf;
    background-image: url(/media/usr/path_to_project/project_name/home/static/images/bg.jpg);
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
    position: relative;
}

我阅读了这些主题

并尝试了所有解决方案,但其中没有解决方案似乎有用。

我的项目树就像

project_name
- home
- static
--home
---style.css
--images
---bg.jpg
- templates
-- home
---base.html
---home_template.html

在style.css文件中我尝试了以下

background-image: url(/media/usr/path_to_project/project_name/home/static/images/bg.jpg);

background-image: url("/media/usr/path_to_project/project_name/home/static/images/bg.jpg");

background-image: url(../images/bg.jpg);

background-image: url("../images/bg.jpg");

background-image: url("{% static 'images.bg.jpg' %});

在我的base.html模板中我有:

{% load static %}
<link rel="stylesheet" type="text/css" href="{% static 'home/style.css' %}"/>

在我的home_template.html中我有

{% block body %}
{% load staticfiles %}

        <section id="two" class="wrapper style3">
            <div class="inner">
                <header class="align-center">
                    <p>Nam vel ante sit amet libero scelerisque facilisis eleifend vitae urna</p>
                    <h2>Morbi maximus justo</h2>
                </header>
            </div>
        </section>

{% endblock %}

奇怪的是,我的静态/图像目录中有其他图像在模板中显示正常,具有内联样式,例如:

<div class="image fit">
<img src="{% static 'images/pic03.jpg' %}" alt="" />
</div>

2 个答案:

答案 0 :(得分:4)

您应该只使用background-image: url('/static/images/bg.jpg');,因为Django会自动将/static映射到正确的文件夹。

答案 1 :(得分:1)

有一个特殊的设置可以处理如何提供静态文件:STATIC_URL

那是正确的使用路径。