在 Apostrophe CMS 项目中包含外部第三方脚本

Including External 3rd party scripts in Apostrophe CMS project

如何从 Apostrophe CMS 中的自定义模块推送第 3 方脚本?

我正在关注 this helpful tutorial to build a form for my Apostrophe CMS site. I am needing to put a reCaptcha thing on the form (https://developers.google.com/recaptcha/docs/display),但我没有关注如何从 google 中包含所需的脚本。注意我需要通过脚本文件include url传入一个变量,即:<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>

是否已经创建了一个小部件(如 Apostrophe-twitter),我可以参考它来了解如何包含这个额外的脚本?

**编辑 我可以通过在我的根模板中创建一个块来完成工作,即:{% block customAssets %} {% endblock %},然后 'populating' 该块包含来自我的 contact-form-widget:widget.html 文件的必要内容。有没有更好的方法来完成这项任务?

我是 P'unk Avenue 的 Apostrophe 的首席开发人员。

在大多数情况下,您可以调用 pushAsset,就像我们的模块所做的那样(您链接到的教程中有示例),并填充 public/csspublic/js 子目录包含 .less 和 .js 文件的模块。

但是对于这种情况,由于 URL 是外部的并且需要查询参数,因此实际上没有 baked-in 解决方案。毕竟Apostrophe的asset-pushing机制的要点很大一部分是minification,这里真的不适用。从外部加载资产是......好吧......外部。

因此,您的 outerLayout 中的一个块非常适合您的场景。

希望对您有所帮助!