You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Drupal Entity Print输出中加载自定义JavaScript库?

为Drupal Entity Print模块加载主题JS库的正确方式

以下是几种更合适的加载方案,替代你当前用hook_theme添加变量的方式:

  • 使用Entity Print专属钩子hook_entity_print_build
    这是模块官方提供的资源附加钩子,能精准作用于打印内容的构建流程。在自定义模块中添加代码:

    /**
     * Implements hook_entity_print_build().
     */
    function YOUR_MODULE_entity_print_build(array &$build, EntityPrintPluginInterface $plugin) {
        // 替换为你的主题和目标库名称
        $build['#attached']['library'][] = 'your_theme/your_target_library';
    }
    

    清除缓存后,该库会自动附加到Entity Print的输出内容中。

  • 自定义主题模板并正确附加库
    若之前直接用{{ attach_library() }}无效,大概率是模板上下文的问题。可以按以下步骤操作:

    1. 复制Entity Print模块的entity-print.html.twig到主题的templates目录下;
    2. 在自定义模板中添加库附加代码,示例:
      {# 主题/templates/entity-print.html.twig #}
      {% extends '@entity_print/entity-print.html.twig' %}
      
      {% attach_library('your_theme/your_target_library') %}
      
      {% block content %}
        {{ parent() }}
      {% endblock %}
      
    3. 清除主题缓存,确保模板被正确识别。
  • 检查主题库的定义正确性
    先确认主题your_theme.libraries.yml中的库配置无错误,比如路径、依赖项是否正确:

    your_target_library:
      js:
        js/your-script.js: {}
      dependencies:
        - core/jquery
        - core/drupal
    

    路径需相对于主题根目录,依赖项按需添加,避免因库本身定义问题导致加载失败。

内容的提问来源于stack exchange,提问作者felipep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:57:22