0

在为 Drupal 开发模块或主题时,不可避免地会出现我们可能需要为我们的项目包含外部 CSS 或 Javascript 插件或库的时候。

Drupal 资产管理有点复杂,让我感到困惑,我阅读了
将样式表 (CSS) 和 JavaScript (JS) 添加到 Drupal 8 主题
将样式表 (CSS) 和 JavaScript (JS) 添加到 Drupal 8 模块
但它没有t解释清楚,还有一些问题。

如何处理这些库和样式表添加到网页?它们是按 SMACSS 类别(基础、布局、组件、状态、主题)的顺序添加的吗?
例如考虑以下结构:
ThemeName.libraries.yml

library-A:
  css:
    # The SMACSS category.
    base:
      # The path to the css file.
      assets/css/stylesheets-1.css: {}
    theme:
      assets/css/stylesheets-2.css: {}

library-B:
  css:
    base:
      # The path to the css file.
      assets/css/stylesheets-3.css: {}
    theme:
      assets/css/stylesheets-4.css {}

在库-A 或 B(每个单独)中:我应该如何定义类别?先来Theme后去base还是倒过来?什么是标准?

在完全库-A 和 B中:他们的女巫首先加载?图书馆-A 还是 B?什么是正确的?

4

1 回答 1

1

对于 1:这里有更多信息,尽管权重是倒置的,但基本上主题将覆盖基础;现在这是一个指导方针而不是规则所以这真的取决于你在写什么

2:这真的取决于你在哪里以及如何加载它们,

ex加载库它倒序:

  • 在主题

    图书馆:

    • 'mytheme/library-B' //用“-”替换项目符号
    • 'mytheme/library-A' //用“-”替换项目符号
  • 在模板中

    {{ attach_library('mytheme/library-B') }} {{ attach_library('mytheme/library-A') }}

  • 在模块中

    $types['element']['#attached']['library'][] = 'mytheme/library-B'; $types['element']['#attached']['library'][] = 'mytheme/library-A';

于 2017-03-10T09:26:51.777 回答