4

I'm using RequireJS, and all my modules reside in /payloads/backend/application.

I.e.

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

Whenever I use require() I have to specify the baseUrl in a configuration object:

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

I have tried adding this into my <head>:

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

Which doesn't help...

I tried temporarily moving require.js to the application folder which didn't helper either.

How can I specify a default baseUrl?

4

1 回答 1

6

您能否展示您如何使用脚本标记指定上述内联 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>

如果您正在使用 data-main 属性(推荐),并且 main.js 已经在“应用程序”目录中,那么一切都应该解决:baseUrl 应该自动设置为应用程序目录:

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

以上仅适用于 RequireJS 0.24.0 及更高版本。

有关该错误的更多信息也会有所帮助:它是否仍然使用相对于页面的 baseUrl?控制台中是否抛出了某种错误?检查浏览器的 Web 开发人员工具中的网络或资源面板将显示使用的文件路径。

于 2011-04-05T18:45:16.217 回答