在我的 Meteor.js 项目中,Meteor.startup 仅在本地主机上运行且未部署。是什么导致了这种奇怪的行为?这些都没有在部署版本上运行。
Meteor.startup(function() {
$('.carousel.slide').carousel();
$("#inputdl").typed({
strings: ["e.g. youtube.com/watch?v=WLGdXtZMmiI", "e.g. mixcloud.com/nicky-romero-protocol", "e.g. metacafe.com/ownage_pranks_hilarious", "e.g. twitch.tv/pokernighttv", "e.g. soundcloud.com/hucci/montana", "e.g. vine.co/playlists/mlb-2015", "e.g. vimeo.com/71278954"],
attr: "placeholder", //attribute
typeSpeed: 30, // typing speed
startDelay: 500, // time before typing starts
backSpeed: 3, // backspacing speed
backDelay: 400, // pause before backspacing
loop: true, // loop on or off (true or false)
loopCount: false, // number of loops, false = infinite
showCursor: true, // show cursor
callback: function(){ } // call function after typing is done
});
Session.setDefault('button_value', 'Download');
Session.setDefault('title', 'Paste URL and click Download');
});
最佳答案
Meteor.startup
在 DOM 加载时在客户端触发。此时,.carousel.slide
和 #inputdl
可能尚未渲染,从而引发错误。您可能应该将该代码放在 Template.templatename.onRendered(func(...))
中,而不是 Meteor.startup(...)
中。
您检查过浏览器控制台吗?你看到错误了吗?如果没有,如果您取出 jQuery 代码并在浏览器控制台中输入 Session.get('button_value')
会发生什么?另请查看 server logs查看服务器上的某些内容是否出现问题。
您的计算机上有最新版本的 Meteor 吗?也许您的项目中的某个地方有一些已弃用的功能。如果一切都失败(删除包含的 jQuery 代码),请尝试创建一个空白的 Meteor 项目,其中包含 Meteor.startup(...)
。如果它有效,则将所有文件复制到该项目并部署,直到发现部署的版本已损坏。 (相当麻烦,但我们无法检查您的整个项目是否有错误。)如果它不起作用,请在另一台机器上尝试。如果这不起作用,Meteor 的部署代码或其服务器一定被破坏,但我发现这不太可能。
祝你好运!
关于javascript - 为什么 Meteor.startup 或 $(window).load 仅在本地主机上运行而不部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31797685/