有一些服务(如 FB like 或 AddThis)提供代码片段。看起来像
<div class="service-name" data-something="x"></div>
<script type="text/javascript" src="http://service-domain.com/service-name.js"></script>
好的,很酷,所以通常你将它粘贴到你的 HTML 中并且它可以工作。不是流星。
这是我看到的:
<script>
模板/正文内部没有加载——我在资源中没有看到它,Meteor 中的某些东西实际上阻止了浏览器将其识别为 JS 文件- 它的工作原理
<head>
现在这里有问题和疑问:
- 我不想加载它
<head>
——因为速度 - 即使我从那里加载它——我们也有 QA 和 PROD 环境。他们必须从不同的域(如 service-domain-qa.com 与 service-domain.com)加载此脚本
令人惊讶的是,您不能在<head>
.
使用传统框架,这根本不是问题——你可以在任何地方包含脚本,它们只是加载;您可以在服务器模板的任何部分使用逻辑/变量。
那么,我应该如何在 Meteor 中做到这一点?让我重复一遍:
- 我需要将一些外部脚本(托管在第 3 方域上)加载到我的应用页面中
- 将此脚本保存到我的项目文件夹中不是一种选择
- 脚本路径取决于环境(我们已经有设置系统),所以渲染它的模板的位置应该从代码中传递一些数据
我知道如何通过 Template.created 上的代码(使用 LAB.js 或其他)加载动态脚本来实现这一点,但这太过分了......