Javascript 通过MeteorJS加载外部JS/JQuery脚本

Javascript 通过MeteorJS加载外部JS/JQuery脚本,javascript,meteor,Javascript,Meteor,我正在尝试在使用Meteor时加载外部脚本 目前在my layout.js中使用此代码取得了一些成功 Meteor.startup( function() { $.getScript('js/scripts.js'); })) 但是,如果我转到另一个url并返回到它,脚本将不再工作。(我看到它不起作用,因为我的背景封面图像消失了。) 在advanced中感谢有专业知识的人帮助我。对于需要帮助的人,请用Template.name.onRendered替换Meteor.startup。这有助于解决

我正在尝试在使用Meteor时加载外部脚本

目前在my layout.js中使用此代码取得了一些成功

Meteor.startup( function() {
$.getScript('js/scripts.js');
}))

但是,如果我转到另一个url并返回到它,脚本将不再工作。(我看到它不起作用,因为我的背景封面图像消失了。)


在advanced中感谢有专业知识的人帮助我。

对于需要帮助的人,请用Template.name.onRendered替换Meteor.startup。这有助于解决我的问题。
干杯

任何外部脚本都应该放在
客户端/兼容性
中,Meteor将为您加载它;不需要
$.getScript('js/scripts.js')

然后,您可以在模板上实例化该脚本,如下所示:

Template.game.onRendered(function(){
  $('.grid').isotope({});
});

这对于某些脚本不起作用,这些脚本需要在加载资产后在正文末尾加载。(例如scripts.js和parallax.js)确实如此。只要确保在模板准备就绪时始终加载该脚本即可。在Meteor world中,您需要
Template.game.onRendered(function(){})(就像你发现了自己一样)。我看不出它会在哪里查找
/js/scripts.js
。我希望能找到
public
目录。但这是一种糟糕的做法,有很多原因。你是对的。我明白为什么这会是一个坏习惯。我已经更新了我的代码以使用你的!此外,由于某些原因,onRendered只在50%的时间内有效。我认为同位素方法搞乱了(onRendered不考虑要加载的图像,所以scripts.js在加载图像之前执行massy/lightbox函数)。你知道吗。如果这就是问题所在,我该如何解决它,或者b。我完全错了,这是另一个问题。我认为这更多的是同位素问题,而不是流星。它必须处理未缓存的图像。看看这个,只有当所有图像都加载时才会启动同位素:我现在就来看看。当它只是纯html/css/js格式时,它就工作了。同位素使用“layoutComplete”
msnry.on('layoutComplete',function(){…})这会改变事情吗?