【问题标题】:Sencha Cmd 5.0.1 with Extjs 5.0.1 issueSencha Cmd 5.0.1 与 Extjs 5.0.1 问题
【发布时间】:2014-08-15 21:07:36
【问题描述】:

我正在升级我的 Extjs 到 5.0.1(从 5.0.0 )以及 Sencha Cmd到 5.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

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

谢谢

【问题讨论】:

    标签: sencha-cmd extjs5


    【解决方案1】:

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

    现在是长篇:

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

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

    我的文件夹设置如下: (请注意,我的 build 文件夹位于 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
            ....
    

    MyApp/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
    

    我希望这对某人有所帮助。

    干杯, 彭乔

    【讨论】:

    • 感谢您的回复和详细信息。这个解决方案对我不起作用,我什至升级到 Sencha Cmd 5.0.2.250 ,仍然是同样的问题。有什么想法吗?
    • 抱歉回复慢,可能你现在已经解决了。如果没有:您是否包含“sencha app build”生成的 microloader.js,但不包含 app.js?我可以看看你的“index.html”和 app.json 文件吗?
    • 不记得确切的解决方案,但它现在可以工作了,非常感谢您的帮助 :).appreciated!!
    猜你喜欢
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2015-07-30
    • 2021-07-24
    • 1970-01-01
    • 2013-11-01
    • 2011-05-14
    相关资源
    最近更新 更多