在meteor部署服务器上未定义全局模板助手

时间:2016-02-16 22:04:58

标签: javascript meteor helper

我的Meteor项目中有一个具有全局功能的文件:

的客户机/ helpers.js

console.log("INIT client helpers")

formatCurrency = function(number, currencyCode) { /* [...] */ }
formatPercentage = function(percent) { /* [...] */ }

Template.registerHelper('formatCurrency', formatCurrency)
Template.registerHelper('formatPercentage', formatPercentage)

我在客户端代码和Blaze视图上使用direcly formatCurrency函数。但是当我尝试在meteor服务器上部署时,我在模板助手中得到了异常:ReferenceError:formatCurrency未定义。 视图位于/client/views/{category}/{view_name}.html,因此它们在帮助程序之后加载。

在我的本地服务器上,当我重新加载页面时,我得到了浏览器控制台上的日志,但是当我点击prod服务器时却没有。

有人知道有什么区别吗?

------------- [更新] -------------

看起来好像永远不会被Meteor调用助手文件。如果我没有在助手上使用他们的任何功能,并加载页面就可以了。但是如果我尝试调用一个函数(在控制台上),我有一个undefined错误,事件在所有页面准备就绪后2秒。

1 个答案:

答案 0 :(得分:1)

我认为你的加载顺序可能是错误的。根据文档:http://docs.meteor.com/#/full/structuringyourapp,视图将首先被加载,因为它们具有更深的路径(规则4),这取决于字母顺序(规则5)。

cd /Library/LaunchDaemons
sudo chown root:wheel com.oracle.oss.mysql.mysqld.plist 
sudo chmod o-w com.oracle.oss.mysql.mysqld.plist 
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist

尝试将全局帮助者放入" lib"目录(规则3),例如" client / lib / helpers.js"