ExtJS应用程序没有查找正确的应用程序文件夹

时间:2014-03-09 04:47:35

标签: javascript extjs model-view-controller extjs4

在此tutorial中,代码为:

Ext.require('Ext.app.Application');

var Application = null;

Ext.onReady(function() {
    Application = Ext.create('Ext.app.Application', {
        name: 'AM',

        controllers: [
            'Users'
        ],

        launch: function() {
            //include the tests in the test.html head
            jasmine.getEnv().addReporter(new jasmine.TrivialReporter());
            jasmine.getEnv().execute();
        }
    });
});

对我来说,当应用程序查找应用程序代码时,这会导致404。

GET http://localhost:8000/AM/controller/Users.js?_dc=1394340001581 404 (File not found)

为什么它像往常一样使用应用程序名称(AM)而不是'app'文件夹?我尝试直接设置'appFolder'配置无效。当我使用

创建应用程序时,它工作正常
Ext.application({
    name: 'AM',

    // automatically create an instance of AM.view.Viewport
    autoCreateViewport: true,

    controllers: [
        'Users'
    ]
});

我正在使用来自根应用程序目录(index.html和app.js所在的位置)的简单http服务器并使用extjs 4.2.1.883来提供应用程序。

3 个答案:

答案 0 :(得分:1)

您必须设置 appFolder ex:

Ext.application({
    name: 'AM',
    appFolder: "Physical path of appfolder",
    autoCreateViewport: true, 
    controllers: [
        'Users'
    ]
});

为上面的类创建对象。您将获得控制器的正确路径

答案 1 :(得分:0)

这是如何通常配置路径映射:

Ext.Loader.setConfig({
    enabled: true,
    paths: {
        'AM': 'app'
    }
});

答案 2 :(得分:-1)

我从来没有发现为什么它不适合我,但是为了继续本教程,我只使用Ext.application并将应用程序分配给全局var启动,即:

Ext.application({
    requires: ['Ext.container.Viewport'],
    name: 'AM',
    controllers: [
        'Smiles'
    ],
    autoCreateViewport: false,

    launch: function() {
        window.Application = this;
    }
});