Angular 2应用程序不加载iOS上的Cordova



我在开发一个Angular 2应用程序并使用Cordova为iOS构建时面临严重问题。在为Android构建和运行时,它有效(在启动时仍存在一些问题),但是我无法在iOS上运行它。

该应用具有Angular 2.0.0-rc.1和Angular-CLI。

每当我使用iOS XCode构建该应用程序时,该应用就会粘在Angular 2加载上 - 我想这是引导过程的问题,但我不确定。

在控制台中,我可以看到它无法加载组件CSS文件,如此错误所示:

[Error] EXCEPTION: Failed to load file:///var/mobile/Containers/Bundle/Application/F325C057-2287-463A-ABF6-DB68944C63D9/Dooda.app/www/app/notifications/notifications.component.css
logError
logGroup
call
(anonyme Funktion)
invoke (zone.js:323)
onInvoke
invoke (zone.js:322)
run (zone.js:216)
(anonyme Funktion) (zone.js:571)
invokeTask (zone.js:356)
onInvokeTask
invokeTask (zone.js:355)
runTask (zone.js:256)
drainMicroTaskQueue (zone.js:474)
invoke (zone.js:426)

路径是正确的,它只是无法继续加载文件。在我的iindex.html中,我可以看到容器是空的,因此Angular 2的内容未加载到那里。

我已将基本HREF设置为索引,如下:

<base href=".">

如果您需要更多信息或代码,请询问。

有人面对同样的问题,可以在这里帮助我吗?我真的很无知,现在该怎么办,我不知道为什么文件加载在这里失败。

任何帮助将不胜感激!预先感谢!

解决方案非常简单,只需使用

<base href="./">

在index.html文件中。它将工作

在iOS上的cordova/ionic也有同样的问题。它是由一个空文件引起的。

我有一个没有模板标记的组件,但仅具有:host-selector的SCS。

似乎Safari无法通过XHR识别任何空文件,并遇到了404个错误,这打破了应用程序。为了解决这个问题,我从组件中删除了所有空文件。之后,它确实在iOS-释放器和本机iPhone 6中对我有用。

我不确定它是否与您的基本URL有关。

在正常情况下,我们将用Angular-CLI构建和包装应用程序到www DIR。之后,您不应该再看到单独的CSS文件了。因为所有CSS文件都会根据您的WebPack设置包装在一个文件中。

最新更新