SAPUI5需要已捆绑到Component-preload.js中的文件

问题描述 投票:2回答:1

由于我的SAPUI5核心是1.44,我用[email protected]compatVersion: "1.44"参数构建了一个Component-preload.js。

剧本:

openui5_preload: {

    component: {

        options: {

            resources: {

                cwd: "<%= dir.webcontent %>",
                prefix: "<%= dir.webapp %>/<%= dir.webcontent %>",
                src: [
                    "**/*.js",
                    "**/*.html",
                    "**/*.json",
                    "**/*.fragment.html",
                    "**/*.fragment.xml",
                    "**/*.fragment.json",
                    "**/*.view.html",
                    "**/*.view.xml",
                    "**/*.view.json",
                    "**/*.properties",
                    "manifest.json",
                    "!test/**"
                ]
            },
            compatVersion: "1.44",

            dest: "<%= dir.dist %>"
        },

        components: "<%= dir.webapp %>/<%= dir.webcontent %>"
    }
}

结果,我有一个文件,其中包含我在脚本中提到的所有内容,我将它存储在WebContent文件夹中,并根据层次结构更新路径,就像在SAPUI5书中描述的那样。

当我测试它时,我得到一个奇怪的行为 - 浏览器加载Component-preload.js和其中提到的所有文件。换句话说,在生成预加载器浏览器之后下载它,但忽略其内容并仍然请求单独的文件,尽管它们已经位于此预加载器中,

我希望浏览器不会将预加载器中提到的文件作为单独的文件请求。否则,没有理由使用预加载器。我该如何解决?

附:问题类似于Minified *.properties and *.css are still requested

javascript sapui5
1个回答
2
投票

命名空间不是实际的文件路径,它是您在清单中定义的任何应用程序的根,然后传播到每个其他文件。预载本身就存在于Component.js所在的任何地方。

enter image description here

预载看起来像这样:enter image description here

详细说明; UI5根据命名空间和文件名在内部加载和缓存文件,根据屏幕截图中的ID:

com.bus.inbox.mist.businessrolechange.Component.js用于组件或com.bus.inbox.mist.businessrolechange.controllers.View1.controller.js用于View1的控制器。如果预加载与这些id不匹配,则缓存机制无法找到它们,并且无论是否存在预加载文件,都会加载实际文件。

在下面的示例中(来自WebIDE),部署了dist文件夹,并且webapp文件夹存储在git存储库中。

enter image description here

在某些情况下,根的定义略有不同,例如index.html文件的引导程序中的resourceRoots。这主要适用于独立应用。

<!-- Bootstrapping UI5 -->
<script id="sap-ui-bootstrap"
        src="resources/sap-ui-core.js"
        data-sap-ui-libs="sap.m"
        data-sap-ui-theme="sap_belize"
        data-sap-ui-compatVersion="edge"
        data-sap-ui-preload="async"
        data-sap-ui-resourceroots='{"com.bus.inbox.mist.businessrolechange": "."}'
        data-sap-ui-frameOptions="trusted">
</script>
© www.soinside.com 2019 - 2024. All rights reserved.