我想在我的小部件中显示默认图像。指向位于窗口小部件文件夹结构内的图像的最佳解决方案是什么?
require.toUrl(“widgets.notes”,“images / defaultAvatar.png”),
输出结果为:
htpp://www.example.com/widgets/main.notes 404(未找到)
答案 0 :(得分:0)
您对require.toUrl
的来电是假的,没有第二个参数。
假设您设置了“小部件”的模块路径,请执行以下操作:
require.toUrl("widgets/notes/images/defaultAvatar.png")
如果您只发送包名称空间(例如“小部件”),它将尝试使用CommonJS Package spec。您将在其中一个信息中注意到标准最低要求是:
require.toUrl("widgets")
解释的是什么。
然而,可以选择应该寻找包“root”的位置。所以,如果你有:
/
dojo/
dijit/
dojox/
widgets/
然后你从没有交互的开始设置,'widgets'是一个全局命名空间pr定义。如果它不是“就地”,那么dojo.registerModulePath
(已弃用为pr 1.7)会派上用场,请参阅reference guide
如果你将它设置为另一条路径(xdomain变得非常复杂,但是接受了绝对路径),那么你可以在这里做两个选项之一:
首先是包的示例布局:
/ (webroot)
/dojo/
dojo-release-x.y/
dojo/
dijit/
dojox/
/widgets/
选项一是dojoConfig,在加载dojo.js脚本标记之前设置为window.dojoConfig
var dojoConfig = {
packages: [
{
name: "widgets",
location: "/widgets" // note, 'http://mydomain.tld/widget' would work
}
]
};
选项二作为require
的附加第一个参数,如下所示:
require({
packages: [
{
name: "widgets",
location: "/widgets"
}
]
}, ["widgets/notes"], function(Notes) {
...
});
答案 1 :(得分:0)
检查一下它对我有用
avatar:require.toUrl(“widgets / MyFirstWidget / widget / images / edwin.jpg”)
在括号中以单词小部件开头,然后转发斜杠,后跟资源的完整URL。以上面的例子为例,MyFirstWidget是小部件的名称,images是我在widget中创建的用于存储图像文件的文件夹