extjs 应用程序在 web2py 中显示空白页面

extjs application shows blank page in web2py

我正在尝试合并 web2pySencha extjs。到目前为止,我已经完成了以下工作:

  1. 安装 web2pysencha(显然)
  2. senchasdk文件夹(ext-6.0.1)复制到web2py的静态文件夹
  3. 使用

    web2py的静态文件夹中创建一个新的sencha项目
    sencha -sdk ./ext6-6.0.1 -classic MyApp ./
    

    这在 web2py 静态中创建了以下文件夹:

  4. 我复制了 sencha 创建的 index.html 的内容并粘贴到 web2py index.html,我在其中更改了行

    <script id="microloader" data-app="bbcdf0cd-c0e2-4208-be64-6dfd8a9f550c" type="text/javascript" src="bootstrap.js"></script>
    

    <script id="microloader" data-app="bbcdf0cd-c0e2-4208-be64-6dfd8a9f550c" type="text/javascript" src="static/bootstrap.js"></script>
    

当我启动 web2py 服务器并访问应用程序时,它显示 空白页 。 Firebug 控制台指示完全没有错误。然而,如果我访问 .../static/index.html 一切正常。 我也尝试过直接包含 sencha index.html,但这也没有用。
我忘了做什么?

除非您在 routes.py 中将您的应用程序设置为默认应用程序,否则 URL 应包含应用程序名称:

src="/yourapp/static/bootstrap.js"

实际上,您应该始终使用 URL 帮助程序来构建 web2py URLs:

src="{{=URL('static', 'bootstrap.js')}}"

请注意,如果您未将当前应用程序的名称指定为第一个参数,URL 帮助程序将自动包含它。

此外,由于您希望 Ext JS 前端与您的所有页面一起工作,您可能希望将相关代码从 Ext JS index.html 页面复制到您的 layout.html,不是您的 /views/default/index.html 视图(仅适用于 /yourapp/default/index 页面)。

最后,请注意,Ext JS 文件中可能还有其他 URL 需要更改以适应 web2py 的路由。