0

我正在将我的Extjs升级 5.0.1(从 5.0.0 )以及Sencha Cmd5.0.1.231

没有编译时错误,但在运行时它没有加载应用程序并给出以下错误

Uncaught TypeError: Cannot read property 'baseUrl' of undefined

其他一些用户也有同样的问题..

http://www.sencha.com/forum/showthread.php?289872-After-update-to-5.0.1&p=1059537

这是一个错误还是我们正在做一些不同的事情?

谢谢

4

1 回答 1

3

它看起来像一个错误,但我认为 Sencha 正在推动使用微加载器,而不仅仅是包含 app.js 文件和 css 文件所以我的简短回答是两者都有!:)

现在长一个:

我正在尝试设置一个 ExtJS 应用程序,该应用程序远离 webroot,同时在开发和生产模式(环境)中都可用。

设置Sencha CMD 应用程序的app.json ,让microloader.js加载所需的 js 和 css 文件,证明是一个挑战。

我的文件夹设置如下:( 注意,我的构建文件夹位于 Sencha CMD 应用程序文件夹之外 - MyApp - 只是为了具有相同的路径深度)

index.cfm
/far/away/from/web/root
    ....
    /build
        /resources
        app.js
        app.json
        microloader.js
        ...
    /MyApp
        /.sencha
        /ext
        app.json
        app.js
        bootstrap.js
        ....

我的应用程序/app.json

{
    /**
     * The application's namespace.
     */
    "name": "MyApp",

    /**
     * The relative path to the appliaction's markup file (html, jsp, asp, etc.)
     *
     * Below setting seems relevant for proper loading MyApp/bootstrap.js
     */
    "indexHtmlPath": "../../../../../index.cfm",

    ......

    "output": {
        "base": "${workspace.build.dir}",
        "page": {
            /**
             * Below is relative path from the build folder to the application markup file
             */
            "path": "../../../../../index.cfm",
            "enable": false
        },
        "microloader": {
            "path": "microloader.js",
            "embed": false,
            "enable": true
        },
        "manifest": {
            "path": "app.json",
            "embed": false,
            "enable": "${app.output.microloader.enable}"
        }
    },

    /**
     * Uniquely generated id for this application, used as prefix for localStorage keys.
     * Normally you should never change this value.
     */
    "id": "f6cd3e2b-6a0c-4359-a452-e07adda808ae"
}

最初,为了使用生产构建,直接加载/far/away/from/web/root/build/app.js文件并抛出相同的错误:

Uncaught TypeError: Cannot read property 'baseUrl' of undefined 

现在,按照上面配置的app.json,我可以在我的index.cfm中选择是否加载:

for production - /far/away/from/web/root/build/microloader.js
for development - /far/away/from/web/root/MyApp/bootstrap.js

我希望这可以帮助别人。

干杯,彭乔

于 2014-08-16T23:03:15.957 回答