当我阅读有关从public
插件共享ember-cli
资产目录的所有信息时,我感到非常困惑。
有没有人在这里工作?任何一个示例插件的参考也会受到赞赏......
答案 0 :(得分:6)
所以......我终于找到了分享静态资产的方法:
- 我将文件放在vendor/assets
目录中
- 将要共享的文件(每个文件...)声明到插件的index.js
文件@adonon的根目录
app.import('vendor/assets/my_image.png');
我在搜索中找到的app.import
语句的一个有趣选项是destDir
,它允许自定义资产的目标发布路径:
app.import('vendor/assets/a/b/c/my_image.png', { destDir: 'x/y' });
将发布my_image.png
@ URL /assets/x/y/my_image.png
希望这会有助于他人节省时间......
答案 1 :(得分:0)
附加组件的资产在名称空间下可用。例如,如果插件中public/assets/image.png
中有一个文件,则该文件位于/my-addon/assets/image.png
下。
如果您不想使用命名空间,则可以覆盖插件定义中的treeForPublic
钩子,如以下the documentation所示:
const Funnel = require('broccoli-funnel');
const mergeTrees = require('broccoli-merge-trees');
module.exports = {
name: require('./package').name,
treeForPublic: function(tree) {
const assetsTree = new Funnel('public');
return mergeTrees([tree, assetsTree], {
overwrite: true,
});
},
};