简而言之,我有一个应用程序,在ng serve上的大小为4.6MB。
当我执行以下命令时:
ng serve --prod
文件大小变成1MB。
然而,--prod会导致整个应用程序崩溃。
我的所有服务(基于promises)不再起作用,它们发送的请求到服务器也无法正常工作。
奇怪的是,只要没有服务器请求,简单的ng serve和ng serve --prod的某些部分都能够很好地工作。
我没有发布任何代码,因为ng serve版本可以正常工作。
主要问题是:
为什么会有这种行为?
此外,在某些时候,基于ng serve --prod的应用程序突然完全正常运行,然后在我重新启动应用程序后,又变为破碎的应用程序。
编辑: 更明确的细节:
我使用Fiddler确保所有详细信息都是正确的:
如您所见,详细信息是正确的。
现在来看客户端代码,其中负责模拟该请求的代码:
login(uName: string, pw: string, type: number): Promise<any> {
return new Promise(resolve => {
if (type === 1) {
const options = new RequestOptions({ headers: this.headers });
const body = JSON.stringify({ username: uName, password: pw });
this.http.post(this.loginUrl, body, options)
.toPromise()
.then(response => {
resolve(response);
})
.catch(this.handleError);
} else if (type === 2 || type === 3) {
this.http.post(this.loginUrl, { username: uName, token: pw })
.toPromise()
.then(response => {
resolve(response);
})
.catch(this.handleError);
}
});
}
现在请注意,当我仅使用ng serve时,一切都能完美运行(网络选项卡):
正如您所看到的,我已经登录并且确实收到响应。
现在,
当我执行以下命令时
ng serve --prod
突然间,相同的登录请求和相同的详细信息不再起作用:
这太奇怪了。
所有负责服务器请求的方法都是相同的。
“坏请求”附带了一些错误代码,来自服务器本身(例如我的服务器代码中的“未填写电子邮件”,这也很奇怪,因为我确实发送了正确的参数)