我在我的 Django 项目中组织了模板,使得站点上的每个页面都包含一个“通用”LESS 文件,并且每个页面还可以指定另一个包含页面特定样式的 LESS 文件。
问题是我需要特定于页面的 LESS 文件才能引用“通用”LESS 文件中的变量。我认为最简单的方法是简单地将变量声明移动到两个 LESS 文件都可以的单独文件中@import
。
但是,Django 应用程序使用单独的目录来存储它们的静态文件。最后,文件系统看起来像这样:
- 常见的 - 静止的 -CSS - 定义.less - common.less - 其他 - 静止的 -CSS - 其他.less
两者都common.less
需要other.less
导入definitions.less
。在这种情况下common.less
很简单:
@import "definitions.less";
以下是页面中实际包含 LESS 文件的方式,以防万一:
{% load compress %}
{% load static %}
{% compress css %}
<link href="{% static "css/common.less" %}"
rel="stylesheet" type="text/less">
{% endcompress %}
确保两个 LESS 文件都可以使用公共变量定义的最简单方法是什么?我想避免组合 LESS 文件有几个原因:
- 它消除了松耦合的好处(停用应用程序而不会对站点的其余部分产生任何副作用的能力)。
- 由于必须获取所有应用程序的所有样式,因此增加了为单个页面检索的附加数据。