当以用户身份登录时(而不是admin),一些JS脚本不会加载某些页面。
我发现了这个问题,因为我使用的是模块欧盟琦琦法规,它使用的脚本(eu_cookie_compliance.js、jquery.cookie.shim.js、js.cookie.min.js)并不总是被加载。
我在我的自定义主题中使用了欧盟Cookie法规模块提供的JS方法,发现它在某些页面上触发了一个错误(因为脚本没有加载)。
例如,脚本加载在/user/2上,但不加载在/user/2/orders或/user/2/customer上,正如您在下面的映像中所看到的那样。这一切为什么要发生?

我在EU Cookie法规模块中看不到任何选项,它可以防止在某些页面上加载脚本。我也没在密码里找到任何东西。
我现在已经将eu_cookie_compliance作为一个依赖项包含在我的主题中:
dependencies:
- core/drupal
- core/jquery
- core/jquery.once
- core/drupalSettings
- eu_cookie_compliance/eu_cookie_compliance
- eu_cookie_compliance/eu_cookie_compliance_bare这就解决了脚本并不是所有页面都被加载的事实。尽管如此,我现在在这些特定的页面上出现了错误。
我在主题的JS (radix_sub.script.js)中所做的一切就是使用Drupal.eu_cookie_compliance.hasAgreed(),它现在触发了以下错误:

我尝试在主题库中只声明eu_cookie_compliance和eu_cookie_compliance_bare,并且错误是相同的。
发布于 2020-09-10 12:37:47
我不知道为什么它没有加载到某些页面上,但归根结底,这是因为这些页面不需要库。如果主题需要模块的库,则需要将其声明为依赖项。
您可以在主题的libraries.yml文件中为库执行此操作。见声明依赖关系文档。
# my_theme.libraries.yml
# It's not clear if you want the bare or full cookie compliance library
my_library:
js:
js/my_libary.js: {}
dependencies:
- eu_cookie_compliance/eu_cookie_compliance
- eu_cookie_compliance/eu_cookie_compliance_barehttps://drupal.stackexchange.com/questions/296626
复制相似问题