如何在静态文件夹外的django中使用静态内容

时间:2015-12-14 15:09:21

标签: html css django django-templates

我有一个内置应用程序的项目,我希望该应用程序能够成为可重用的包,我有一个模板,我在其中定义了一些CSS样式,但是当我尝试应用正文背景图像时,我无法显示它。我不想将此图像放在我的全局静态文件夹中,因为此图像不适用于项目,而且仅适用于此应用程序。我的项目结构如下: project-structure

login.html是我的模板,background.jpg是我的形象。我的CSS代码是:

body{
        background-image: url('templates/background.jpg');
    }

但这不起作用。

2 个答案:

答案 0 :(得分:1)

1,存储文件的位置

引用django docs (step 4)

  

将静态文件存储在应用程序中名为static的文件夹中

2,清单

然后,阅读Packaging your app step 6以了解如何编写清单。例如:

<强> Django的轮询/ MANIFEST.in

include LICENSE
include README.rst
recursive-include polls/static *

3,使用静态

请记住在模板上使用static

{% load static from staticfiles %}
body{
        background-image: url( '{% static "templates/background.jpg%}');
    }

答案 1 :(得分:0)

您可以在应用“app-package”中创建静态文件夹,该文件夹的名称应为“静态”。每次django看到静态文件时,它都会在所有应用程序的静态文件夹中搜索它。 现在,您应该在编写模板之前加载所有静态文件。

的login.html

[
    {
        "email": [email_address],
        "status": "sent",
        "_id": [id],
        "reject_reason": null
    }
]

图像应保存在静态文件夹中,项目的设置应该知道这一点。您对静态文件的设置将如下所示。 settings and static folder