2011-02-28 69 views
2

我正在构建requirejs插件并将它们加载到我的页面上。然而,在我的页面上,我设置了一个baseUrl值,这样我就可以使用“tools/foo”而不是“/ static/js/blah/tools/foo”加载插件。requirejs - 如何从插件中获取“baseUrl”信息?

但是现在我希望允许插件加载css文件。我想通过添加一个链接到标题来完成,而不是用“text!foo.css”加载css内容。我也不想指定一个完全合格的css文件路径。有没有办法让我从一个requirejs插件中调出我在页面上设置的baseUrl设置,以便我可以使用它来帮助查找我的css文件?

回答

7

加载函数的parentRequire参数具有一个parentRequire.toUrl()方法,该方法将解析任何路径,就像它是模块名称一样,但具有扩展名。所以:

var cssPath = parentRequire.toUrl('tools/foo.css'); 

会返回类似/static/js/blah/tools/foo.css的路径。

它看起来像我忘了添加到plugins doc页面,我会把任务,以获得记录。

+0

谢谢!顺便说一句,我喜欢requirejs继承模式对我的js代码做了什么。感谢伟大的工具! – chrispitzer 2011-03-03 19:01:21