django基于类的视图静态文件

时间:2015-02-26 11:44:06

标签: django

在使用基于通用类的视图时,我在加载我的css和javascript文件时遇到了一些问题。

文件夹结构是这样的。

- app1
  - views.py ect
  - templates
    - app1.html
- static
  - static
    - css
    - base.css

app1.html:

<link href="/static/css/base.css" rel="stylesheet">

views.py:

class ClientList(ListView):
    model = Client
    template_name = 'app1.html'

我尝试在应用程序中移动静态文件,但它仍然无法找到它们

如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:3)

您在根static内不需要额外的static目录:

- app1
  - views.py
  - templates
    - app1.html
- static
  - css
    - base.css

因此,在模板中,您可以将base.css称为:

{% static 'css/base.css' %}

并且不要忘记设置STATICFILES_DIRS设置。

如果你想将静态文件放到app dir中,布局可能是这样的:

- app1
  - views.py
  - templates
    - app1.html
  - static
    - css
      - base.css

在这种情况下,不需要STATICFILES_DIRS设置。

请注意,如果您将静态文件(或模板)放入app目录,那么最好添加一个带有应用程序名称的目录,以防止文件夹与其他应用程序发生冲突:

- app1
  - views.py
  - templates
    - app1
      - base.html
  - static
    - app1
      - css
        - base.css

然后在模板中:

{% static 'app1/css/base.css' %}