Require.js - 如何加载相对于模块目录

时间:2013-08-05 02:40:48

标签: javascript requirejs dynamic-script-loading

我的结构如下:

  • 的index.html
  • main.js #holds configs.path和configs.shim
    • 的jquery.js
    • require.js
    • Backbone.js的
    • underscore.js
  • 模块
    • 应用
      • main.js #want加载到./views/app.js
      • 的观点
        • app.js

所以在/modules/app/main.js中,我想加载/modules/app/views/app.js但有问题

这是/modules/app/main.js

define(['views/app'],function(App){
console.log('app main')
//var app = new App();
})

我收到的控制台错误消息是路径GitProjects/GameApp/views/app.js

获取失败

如何让它加载相对内部模块?

此处是./main.js保存配置的文件

require.config({
    paths: {
      jquery: './libs/jquery-2.0.3',
      underscore: './libs/underscore',
      backbone: './libs/backbone'
    },
    shim: {
        "underscore": {
            exports: '_'
        },
        "backbone": {
            deps: ["underscore", "jquery"],
            exports: "Backbone"
        }
    }
}); 

这是我的index.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Stop Game App</title>
        <script src="./libs/require.js" data-main='./main'></script>
    </head>
    <body>
        <div id="app"></div>
        <script>
        require(['./modules/app/main'],function(){
                console.log('main')
            })
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:2)

您只需将路径设置为“./”并保持相对。这就是它的全部内容。