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