【问题标题】:excluding some js file from minification in com.day.cq.widget.impl.HtmlLibraryManagerImpl从 com.day.cq.widget.impl.HtmlLibraryManagerImpl 的缩小中排除一些 js 文件
【发布时间】:2016-06-08 13:20:33
【问题描述】:

我有 config\com.day.cq.widget.impl.HtmlLibraryManagerImpl.xml 的 osgi 配置设置

如下:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="sling:OsgiConfig"
    htmllibmanager.minify="{Boolean}true"
    htmllibmanager.debug="{Boolean}false"
    htmllibmanager.gzip="{Boolean}false"
    htmllibmanager.timing="{Boolean}false"
    />

但是,我希望某些文件不被缩小。我该怎么做?

【问题讨论】:

  • 您的用例是什么?为什么不希望它们缩小?无论如何,我只能考虑使用单独的脚本标记直接引用特定文件,而不是使用库管理器
  • 在执行过程中需要压缩文件。但是,由于这个原因,一个正在引起问题。
  • 那我宁愿检查这个文件,因为它可能遗漏了一些;在一行的末尾或其他一些标识写得不太好的 js 文件的小东西

标签: content-management-system aem


【解决方案1】:

自 AEM 6.1 起,com.day.cq.widget.HtmlLibraryManager 接口及其实现 (com.day.cq.widget.impl.HtmlLibraryManagerImpl) 已被弃用。

相反,您应该看看新的HtmlLibraryManager 接口。 com.adobe.granite.ui.clientlibs.impl.HtmlLibraryManagerImpl 实现具有有趣的 OSGi 属性“htmllibmanager.excluded.path.list”,这可能正是您所需要的。

【讨论】:

  • htmllibmanager.excluded.path.list 会排除路径,如何排除文件?
  • 我可以将此功能用于 AEM6 SP2 吗?
【解决方案2】:

我已在 adobe 论坛中阅读了此问题的解决方案,由 Sham HC

据他说,OOB 是不可能的,您可能需要实现自己的 HTMLLibraryManager。提交日托请求功能包。

如果您查看了以下链接,您可以利用选择器和调度程序或链接重写器删除 .min 来满足您的要求。

New in AEM

【讨论】:

    【解决方案3】:

    使用手动包含来选择是否缩小。您的 clientLibs 没有任何改变。使用“htmllibmanager.excluded.path.list”对我不起作用,我可以在文档中读到 cq:ClientLibraryFolder 不能被排除,因为几乎没有指定这是一个 clientLib。

    制作这样的东西(css):

    <sly data-sly-use.clientLib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientLib.css @ categories='yourClientLib}" data-sly-unwrap/>
    

    用途:

    <link rel="stylesheet" type="text/css" href="/etc/designs/yourClientLib.css"/>
    

    并制作这个(js):

    <sly data-sly-use.clientLib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientLib.js @ categories='yourClientLib'}" data-sly-unwrap/>
    

    用途:

    <script src="/etc/designs/yourClientLib.js"></script>
    

    因此,如果您不想缩小,您的文件将以“.js”结尾,如果您希望缩小,您的文件将以“.min.js”结尾.真的很简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2023-03-14
      • 2014-09-14
      • 2016-02-13
      • 1970-01-01
      相关资源
      最近更新 更多