Meteor包,如何添加静态文件

bit*_*tIO 17 meteor meteor-blaze

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

Dav*_*don 28

更新:流星1.2

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


原始答案

您可以将静态资产添加到任何包中,它们将由meteor提供.证明这一点的最简单方法是举个例子.看看跳房子的来源.

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

api.addFiles('img/sprite-green-0.3.png', 'client');
Run Code Online (Sandbox Code Playgroud)

将包添加到项目后,您可以使用以下URL直接访问该文件:

http://localhost:3000/packages/hopscotch/img/sprite-green-0.3.png
Run Code Online (Sandbox Code Playgroud)

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

请注意,您可以{isAsset: true}addFiles不应自动加载的资产添加第三个参数.这篇文章包含了它的一个使用示例.

  • 如果你的包中有一个带有":"的名称(就像现在大多数用户命名空间的包那样),它会被转换为下划线.生活在"author:packagename"中的"public/img/sprite.png"中的图像将在"/packages/author_packagename/public/img/sprite.png"中找到. (15认同)
  • 对于不希望在客户端上自动加载的CSS和JS文件,您应该使用`{isAsset:true}`. (9认同)