0

为了将我的模型、集合等从我的移动应用程序定向到我的网络应用程序,我需要配置我的 RequireJS。

我有以下文件结构:

/
/js
  /models
/mobile
  /js
  /templates

我希望我的mobile应用程序使用我的主应用程序的模型,所以我设置了以下内容:

require.config( {
    paths : {
        models : '/js/models',
        templates : 'mobile/templates'
    }
});

我在 Chrome 中收到这些错误:

Uncaught SyntaxError: Unexpected token < /mobile/js/models/User.js?bust=0.1.0:1
Uncaught SyntaxError: Unexpected token < /mobile/js/models/InviteRequest.js?bust=0.1.0:1
Uncaught SyntaxError: Unexpected token < /mobile/js/models/Log.js?bust=0.1.0:1

这意味着它仍在寻找/mobile而不是/.

此路径配置适用于我的templates文件夹,但不适用于我的文件models夹。models/如何将所有以我的主模型文件夹开头的依赖项指向?

谢谢!

尝试 2

我尝试设置baseUrl

require.config( {
    baseUrl : '/',
    paths : {
        views : 'mobile/views',
        templates : 'mobile/templates'
    }
});

require( [
    'app'
],
function(App) {
    App.initialize();
});

我得到错误:

GET http://local.m.mysite.co/app.js 404 (Not Found) require.js:2
4

1 回答 1

1

在您的第二次尝试中,您基本上告诉 Require JS 加载“app”模块,并且由于您将基本 url 设置为“/”,因此 Require JS 将在您的根路径中查找“app”模块。

所以你需要做的是告诉 Require JS 在哪里寻找你的“应用”模块。假设您的“应用”模块在 /js/module 中:

/
/js
  /models
  /module
    /app.js
/mobile
  /js
  /templates

那么你加载“app”模块的代码是:

require.config( {
    baseUrl : '/',
    paths : {
        views : 'mobile/views',
        templates : 'mobile/templates'
    }
});

require( [
  'js/module/app'
],
function(app) {
    app.initialize();
});

或者,您可以在配置中设置“模块”路径。然后在你的依赖加载中引用这个路径:

require.config( {
    baseUrl : '/',
    paths : {
        views : 'mobile/views',
        templates : 'mobile/templates',
        module: 'js/module'
    }
});

require( [
  'module/app'
],
function(app) {
    app.initialize();
});

至于您在 ATTEMPT 2 之前在 Chrome 中遇到的错误,您需要查看在模块加载中如何引用您的模块。

于 2013-04-18T22:04:56.147 回答