【问题标题】:Meteor package, how to add static filesMeteor包,如何添加静态文件
【发布时间】:2014-07-31 08:44:38
【问题描述】:

我正在创建一个包,对于客户端,我需要添加一些静态文件,例如字体和图像。在尝试了一些过时的解决方案后,我发现似乎没有什么对我有用。我应该如何添加这些文件?在我的包内创建一个公用文件夹?添加带有api.addFiles 的文件? 这甚至可能吗?

【问题讨论】:

  • 很好的问题,您有没有提出问题来记录这个问题?

标签: meteor meteor-blaze


【解决方案1】:

更新:流星 1.2

您现在应该使用api.addAssets 将静态文件添加到您的包中。


原答案

您可以将静态资产添加到任何包中,它们将由流星提供。演示这一点的最简单方法是举个例子。查看hopscotch的来源。

该包包含一个img 目录和文件sprite-green-0.3.png。如果您查看package.js 文件,您可以看到它被添加到客户端:

api.addFiles('img/sprite-green-0.3.png', 'client');

将包添加到您的项目后,您可以通过此 URL 直接访问该文件:

http://localhost:3000/packages/hopscotch/img/sprite-green-0.3.png

总而言之,您可以使用api.addFiles 添加静态资产。所有资产都可以在/packages/[package name]/[path to asset] 之类的路径下访问。

请注意,您可以将 {isAsset: true} 作为第三个参数添加到 addFiles 以用于不应自动加载的资产。 This post 包含一个使用示例。

【讨论】:

  • 对于不希望在客户端自动加载的 CSS 和 JS 文件,您应该使用 {isAsset: true}
  • 如果你的包有一个带有“:”的名字(就像现在大多数用户名命名空间包一样),它会被翻译成下划线。将在“/packages/author_packagename/public/img/sprite.png”中找到“author:packagename”中“public/img/sprite.png”中的图像。
  • @user85461 非常感谢,这就是我们所缺少的。我希望这有更好的记录,有趣的是,这条小评论是如何缺少链接的。
  • 很好,这实际上是一个非常重要的功能,我很失望我们花了多长时间才找到这个答案,非常感谢!
  • 有没有办法将资产列表从 package.json 传递到包代码本身?您通常会在 package.json 中定义要添加的资产,但随后需要通过循环将它们加载到运行时代码中。
【解决方案2】:

对于像 favicon.ico 或字体文件这样的资产文件,您可以创建一个public 文件夹。

您可以查看此answerdocumentation

【讨论】:

    猜你喜欢
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2015-11-03
    • 2021-10-04
    • 1970-01-01
    • 2022-07-05
    相关资源
    最近更新 更多