0

这是我第一次实际使用 Meteor,我正在尝试使用 Meteor 框架加载 JS 文件,我遇到了一个复杂的问题,我想执行以下操作:

    <script type="text/javascript">
        document.write('<script src=' +
        ('__proto__' in {} ? 'js/vendor/zepto' : 'js/vendor/jquery') +
        '.js><\/script>')
    </script>

我想根据某些条件加载特定的 JS 文件。

我知道 Meteor 有一种加载 JS 文件的方法,它们会先加载最深,然后按字母顺序加载。显然,如果我将脚本放在客户端文件夹中,那么无论如何它都会加载两个 js 文件,而无需担心。像上面的代码那样动态加载文件的最佳方法是什么?

谢谢

4

2 回答 2

2

使用 Meteor 1+,您应该只从您的私人和公共文件夹中“加载”文件。由于文件路径在 Meter 开发和部署之间发生变化,因此对私有和公共目录之外的路径使用直接读/写可能会失败。

对于客户端,您可以使用相对于您的公共目录的路径访问您的公共目录中的任何文件。例如 $.getScript() 可用于访问公共文件夹中的脚本。对于服务器,您可以使用 Assets.getText() 或 Assets.getBinary() 再次使用私有目录中的相对路径访问私有目录中的任何文件。

在这两种情况下,都不要在相对路径中包含私有或公共。如果您的文件位于“public/foo/yoo.js”,请仅指定“foo/yoo.js”。

于 2015-01-16T08:02:11.503 回答
1

Meteor 会忽略以“.”开头的文件夹。

一个解决方案是将有条件包含的所有内容放入名为“.includes”之类的文件夹中,并在 Meteor 项目中的其他任何地方使用条件语句将它们包含在类似的东西中

require(path_to_that_folder + 'filename.js');

看:

http://docs.nodejitsu.com/articles/getting-started/what-is-require

http://nodejs.org/api/modules.html

于 2013-05-16T06:38:04.677 回答