我们可以将文件覆盖到我们的自定义路径吗

Can we overlay the file to our custom path

我们能否将文件覆盖到我们的自定义路径,或者我们必须将文件覆盖到 libs 中的确切文件夹结构位置?

比如我想叠加constants.js(/libs/cq/ui/widgets/source/constants.js)文件,在这个adobe中推荐将这个文件复制到/apps/cq/ui/widgets/source/constants.js进行叠加,但是在我的项目中那个文件夹结构不存在,所以我已经复制到应用程序文件夹中的自定义路径并测试了更改和覆盖工作正常。

除了将 'libs' 替换为 'apps' 外,该文件的路径必须与 libs 中的路径相同。它不适用于自定义路径*。如果项目还没有结构,您可以随时创建它。不要忘记更新 META-INF/Vault/filter.xml 文件以使用项目包定义注册新路径。

*从技术上讲,您可以更改配置以添加新的搜索路径。但请记住,您可能必须与不同的租户共享 AEM 实例,并且遵守通常的约定对于获得可预测的设置大有帮助。老实说,我看不出这样做的理由,覆盖在“/apps”下已经是一种可以接受的做法。包裹上的过滤器提供了足够的灵活性,可以在修改类似区域时与其他租户相处。

我认为您想在 /apps 下的自定义项目中创建叠加层。如果我的假设是正确的,那么你一定可以做到。

考虑到您的示例,可以通过在 Apache Sling Resource Resolver Factory 配置中添加一个条目来将 /libs/cq/ui/widgets/source/constants.js 覆盖到 /apps/<your-project>/cq/ui/widgets/source/constants.js

有关详细步骤,请参见。希望对您有所帮助。