我已经创建了一个 Angular 2 应用程序,我正在寻找使用 Apache Cordova 创建一个 Android 应用程序。当我在 Marshmallow 模拟器中加载应用程序时,应用程序不会加载任何已声明的资源。如果我使用浏览器插件,它会按预期工作。使用 Chrome 检查设备的控制台会显示以下输出。
Chrome 控制台输出:
如果我运行 Cordova 初始示例,它可以在同一个 Android 模拟器中运行,所以它一定是源代码有问题。可以在 Github repository 中查看代码.该应用程序位于 www 目录中,为了进行测试,需要添加 android 平台。
$ cordova platform add android
$ cordova run android
我找不到这个问题的答案:
- 资源看起来不错 - 排除文件路径问题。
- 浏览器插件有效 (Chrome) - 丢弃应用程序错误和安全策略。
- cordova 示例在 Android 上按预期工作 - 丢弃环境错误。
拜托,有人知道这个设置有什么问题吗?
最佳答案
我找到了根本原因。问题是通过使用 angular-cli
工具,标签 <base href="/">
正在自动添加。根据tag documentation , 它是解析所有文档的相对 URL 的基础。
对于此用例,删除基本标记或将其配置为有效值,如 <base href="/android_asset/www/">
解决问题。由于我还没有使用路由功能,我觉得删除它或设置一个像 <base href="."/>
这样的值会更舒服。它适用于更多平台构建。
关于android - Apache Cordova for android 不加载资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589695/