2011-04-05 351 views
4

我正在使用RequireJS,并且我所有的模块都驻留在/payloads/backend/application中。如何设置默认baseUrl

I.e.

/payloads/backend/application/blog/newPost.js 
/payloads/backend/application/blog/models/category.js 

每当我用require()我有一个配置对象到指定的baseUrl:

require({baseUrl: "/payloads/backend/application"}, ["blog/widgets/categories"], function(widget){ 
     // do some stuff with widget 
    }); 

我曾尝试加入到这个我<head>

<script type="text/javascript"> 
    var require = { 
     baseUrl: "/payloads/backend/application" 
    }; 
</script> 

这不利于...

我试着暂时将require.js移动到应用程序在没有帮助的文件夹上。

如何指定默认的baseUrl?

回答

6

你能说明你是如何通过脚本标签指定上面的inline require调用顺序来加载require.js的吗?随着RequireJS 0.24.0和更高,这应该工作:

<script type="text/javascript"> 
    var require = { 
     baseUrl: "/payloads/backend/application" 
    }; 
</script> 
<script src="path/to/require.js"></script> 
<script>require(["blog/widgets/categories"], function() {}</script> 

如果您正在使用的数据主要属性(推荐),main.js已经在“应用程序”目录,那么就应该所有的工作出:在的baseUrl应自动设置到应用程序目录:

<script data-main="/payloads/backend/application/main.js" src="path/to/require.js"></script> 

上面只有RequireJS 0.24.0和更大的工作。

关于错误的更多信息也会有帮助:它仍然使用相对于页面的baseUrl吗?控制台中是否存在某种错误?在浏览器的Web开发工具中检查Net或Resources面板将显示使用的文件路径。

+0

很快会回复你。这是关于不在上下文中使用的东西“_” – Cobby 2011-04-05 21:43:05

+0

不知道我做了什么,但我认为它现在正在工作:s 感谢您的帮助。 – Cobby 2011-04-05 22:39:05