css - 如何将 django-compressor 与导入通用文件的多个 LESS 文件一起使用?

标签 css django less django-compressor

我在我的 Django 元素中组织模板的方式是网站上的每个页面都包含一个“通用”LESS 文件,每个页面还可以指定另一个包含页面特定样式的 LESS 文件。

问题是我需要页面特定的 LESS 文件才能引用“通用”LESS 文件中的变量。我认为,最简单的方法是将变量声明简单地移动到一个单独的文件中,两个 LESS 文件都可以 @import

但是,Django 应用程序使用单独的目录来存储它们的静态文件。最后,文件系统看起来像这样:

- common
   - static
      - css
         - definitions.less
         - common.less
- other
   - static
      - css
         - other.less

Both common.less and other.less need to import definitions.less. In the case of common.less this is as simple as:

@import "definitions.less";

以下是 LESS 文件实际包含在页面上的方式,以防万一:

{% load compress %}
{% load static %}

{% compress css %}
    <link href="{% static "css/common.less" %}"
          rel="stylesheet" type="text/less">
{% endcompress %}

确保公共(public)变量定义对两个 LESS 文件可用的最简单方法是什么?出于以下几个原因,我想避免合并 LESS 文件:

  • 它消除了松散耦合的好处(停用应用程序而不会对网站的其余部分产生任何副作用的能力)。
  • 由于必须获取所有应用的所有样式,因此增加了为单个页面检索的额外数据。

最佳答案

我们在我们的应用程序中做同样的事情——我们有一个公共(public)文件 main.less,它包含在许多其他 less 文件中。但是,我们不会遇到这个问题。我认为有几种解决方法——您可以更改静态文件的位置。

django STATICFILES_DIRS 中有一个设置——如果您愿意,您似乎可以更改静态文件的位置,而不是像那样嵌套在应用程序中。 https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATICFILES_DIRS

我们的代码是这样的

{% compress css %}
{% include "_base_css.html" %}
{% endcompress %}

然后 _base_css.html 只包含所有 less 文件,首先是我们的 main.less。

## _base_css.html
<link rel="stylesheet" type="text/less" href="{{ STATIC_URL }}css/main.less">
<link rel="stylesheet" type="text/less" href="{{ STATIC_URL }}css/about.less">
<link rel="stylesheet" type="text/less" href="{{ STATIC_URL }}css/dashboard.less">

我不清楚你的问题是什么错误,但我相信你的通用 less 文件需要在任何其他 less 文件可访问之前被包含。在您的代码片段中,您似乎没有包含它。在压缩方面,我认为将所有站点范围的 css 压缩到一个文件中并不太糟糕——它是第一次下载,然后被完全缓存。

希望这对您有所帮助。

关于css - 如何将 django-compressor 与导入通用文件的多个 LESS 文件一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16112093/

相关文章:

php - Joomla 错误信息文件目录

python - 加载夹具时 Django 单元测试出错

javascript - 用户序列化程序在 AJAX 获取中显示 null,但在 DRF 中显示数据

Django:过滤 `DecimalField` 效果不佳?

html - 当我将她移到顶部时,我的 div 的一部分被隐藏了

html - 表格单元格内的菜单不响应 z-index

javascript - 滑动图像缓动

css - 如何从用逗号(,)分隔的css中取出公因数

node.js - 使用 express 在 node.js 中呈现 LESS.js 样式表的最佳方法是什么?

html - 表格没有占据页面的整个高度