【问题标题】:Meteor css and javascript files loading best practiceMeteor css 和 javascript 文件加载最佳实践
【发布时间】:2015-04-05 04:11:18
【问题描述】:

TL、DR: 如何加载 css 和 javascript 文件,而不依赖于 Meteor 关于字母顺序的假设(这与实践中的工作方式相去甚远。)

Stackoverflow 告诉我这个问题可能是主观的,但我希望不是。

Meteor 根据字母顺序(和其他规则)加载文件。
因此,为了强制它按我想要的顺序加载 CSS 和 JS 文件,我必须以指示加载顺序的数字开头。如果我有jquery.jsbootstrap.js,Meteor 将在jquery.js 之前加载bootstrap.js。但是 bootstrap 依赖于 jquery,所以必须先加载 jquery。

为了解决这个问题,选项是:
1、将文件放到public目录下,手动加载。但这不起作用,因为 Meteor 似乎正在发送具有 text/html MIME 类型的文件。
2. 创建一个 Meteor 包并从那里指定加载顺序。我发现这就像用锤子打苍蝇一样,只是为了加载 CSS 和 Javascript。
3. 在每个文件前加上一个数字。在前面的示例中,要在引导之前加载 jquery,请将文件重命名为 1.jquery.js2.bootstrap.js 这可行且乏味,但至少我可以按照我想要的方式加载文件。

我是 Meteor 的新手,所以我想知道是否有推荐的最佳实践。我正在考虑将 AMD 用于 javascript,但仅限于 javascript。

【问题讨论】:

    标签: javascript meteor load-order


    【解决方案1】:

    这是一个有趣的问题,这可能是制作 Meteor 应用程序的陷阱之一。

    您已经提到了所有可用的解决方案,例如创建显式包或重命名文件。

    我认为最好的方法是使用气氛包。例如,如果您添加引导程序,jquery 是它的依赖项,因此它将始终首先加载。大多数涉及加载顺序的 js 库通常都在环境中。

    如果没有大气包,另一种最好的方法是在js文件前面放一个数字来指示加载顺序。

    一件事是当你使用/public文件夹时,文件映射到/,所以你可以按照你想要的顺序手动加载js文件(在根html文件中使用/public.Meteor返回text/html MIME type as its version of a 404 file not found 错误。这种方法虽然有点麻烦,因为文件在生产中是分开的,如果一个或另一个不加载可能会导致问题。

    【讨论】:

    • 感谢您的回复!我正在尝试尽可能地坚持 Meteor 方式,所以现在,我使用了文件编号。第二个问题出现了。当我添加iron:router 时,它会在模板所依赖的 javascript 文件之前加载模板,现在我觉得每次都必须打补丁才能让某些东西正常工作。我将尝试/public 文件夹建议,希望它能解决 IronRouter 的问题。
    • 至于带气氛,我会看看我需要的所有包裹是否都在那里。
    • 我最终坚持使用编号系统。将文件移动到/public 文件夹并没有解决问题(但404 确实消失了。)至于IronRouter 问题,我将代码移动到Template.myTemplate.rendered,它现在可以工作了。谢谢:-)
    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 2010-10-03
    • 1970-01-01
    • 2012-10-27
    • 2011-11-28
    • 2010-10-06
    • 2010-10-15
    • 2014-07-01
    相关资源
    最近更新 更多