这是我第一次真正使用Meteor,我正在尝试使用Meteor Framework加载JS文件,并且我已经遇到了一个复杂问题,我想要执行以下操作:
<script type="text/javascript">
document.write('<script src=' +
('__proto__' in {} ? 'js/vendor/zepto' : 'js/vendor/jquery') +
'.js><\/script>')
</script>
我想根据特定条件加载特定的JS文件。
据我所知,Meteor有一种加载JS文件的方法,它们首先加载最深,然后按字母顺序加载。显然,如果我将脚本放在客户端文件夹中,那么无论如何它都会加载两个js文件,而不需要在世界范围内小心。以上代码动态加载文件的最佳方法是什么?
由于
答案 0 :(得分:2)
使用Meteor 1+,你应该只加载&#39;来自您的私人和公共文件夹的文件。由于文件路径在Meter开发和部署之间发生变化,因此对私有和公共目录之外的路径使用直接读/写可能会失败。
对于客户端,您可以使用相对于公共目录的路径访问公共目录中的任何文件。例如,$ .getScript()可用于访问公用文件夹中的脚本。对于服务器,您可以使用Assets.getText()或Assets.getBinary()再次使用私人目录中的相对路径访问私人目录中的任何文件。
在这两种情况下,相对路径中不包括private或public。如果您的文件位于&#39; public / foo / yoo.js&#39;只需指定&f; / foo / yoo.js&#39;。
答案 1 :(得分:1)
Meteor会忽略以'。'
开头的文件夹解决方案是将有条件包含的所有内容放入名为'。includes'的文件夹中,并在Meteor项目中的任何其他位置使用条件语句,以包含类似
require(path_to_that_folder + 'filename.js');
请参阅:
http://docs.nodejitsu.com/articles/getting-started/what-is-require