在Meteor应用程序的客户端文件夹中,我创建了操作模板的js文件(client / index.html)。当我在浏览器中本地运行应用程序时,它工作正常。但是当我将它部署到手机时,我的脚本不起作用。然后我将console.log语句添加到我的模板和脚本中,发现加载顺序不同。在本地浏览器中打印:
loading template
loading javascript
但是在手机中,它会以其他方式打印出来:
loading javascript
loading template
Meteor文档指出“HTML模板文件总是在其他所有文件之前加载”。那么,当我将我的应用程序部署到手机时,为什么不是这样呢?
答案 0 :(得分:0)
您可以通过移动内容来更改加载的顺序,并将一些文件放在文件夹中以便稍后加载,即在您首先加载的文件后面。
Meteor实现这种自动加载的方式很棒,直到你遇到问题(比如这个问题),并且有了一些问题,你可以让事情再次发挥作用。
现在推荐的做法是不使用预先加载,而是显式加载每个模块,然后控制加载顺序。部分原因是将您的文件放在/imports
文件夹(或子文件夹)中,并使用import
语句显式加载它们。您将一个文件放在/server
(顶级文件)中,并对/client
执行相同操作以加载所有客户端文件。
根据应用程序的大小,它可能意味着一些工作,但它会使您的代码与在javascript生态系统的其余部分中导入文件的方式保持一致。