在Django中有条件地提供静态文件

时间:2014-06-24 15:55:32

标签: python django django-templates django-staticfiles

我在Django做了很多项目,我习惯了正常的静态文件服务方式。但是,这次我有一个不同的场景,模板文件夹中有子文件夹(例如模板文件夹中有文件夹page1 /,page2 /等)。每个文件夹都包含模板文件“index.html”,然后是静态文件(css,js和images文件夹)。

我的问题是,如何使用相应的静态文件为每个模板提供服务。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您应该能够像任何其他模板一样包含静态文件。虽然这不是使用静态资产的理想方法,但对于django来说非常不正统。

一种方法是在你的基础html文件中分别在主体的头部和底部有一个块用于额外的css和额外的js。从那里,您可以在index.html中调用块并包含静态文件。

例如,在page1 / index.html

{% block extra_css %}
<style>
  {% include 'page1/mycss.css' %}
</style>
{% endblock extra_css %}

同样,我永远不会亲自这样做。使用静态文件并引用它们是可行的方法。