Angular 角度加载生产区块文件在部署后失败
我的客户端整天都在打开浏览器,所以在我部署后,他们会看到应用程序损坏,需要重新加载页面来修复 由于@angular/cli生产生成添加了无缓存哈希,服务器无法加载区块文件 错误:Angular 角度加载生产区块文件在部署后失败,angular,http,nginx,jenkins,angular-cli,Angular,Http,Nginx,Jenkins,Angular Cli,我的客户端整天都在打开浏览器,所以在我部署后,他们会看到应用程序损坏,需要重新加载页面来修复 由于@angular/cli生产生成添加了无缓存哈希,服务器无法加载区块文件 错误:错误:未捕获(承诺中):错误:加载区块11失败。 我想在部署后重新加载页面 这些是我的工具: 我有权访问我的NGINX配置 我有权访问詹金斯(蓝海) 我已经在项目中实现了HttpClient拦截器 我管理了路由的错误,替换了它的错误处理程序,并在它发现加载区块时重新加载 // Keep the original err
错误:未捕获(承诺中):错误:加载区块11失败。
我想在部署后重新加载页面
这些是我的工具:
- 我有权访问我的NGINX配置李>
- 我有权访问詹金斯(蓝海)
- 我已经在项目中实现了HttpClient拦截器
// Keep the original error handler
const oldHandler = this.router.errorHandler;
// Replace route error handler
this.router.errorHandler = (err: any) => {
// Check if there is an error loading the chunk
if (err.originalStack && err.originalStack.indexOf('Error: Loading chunk') >= 0) {
// Check if is the first time the error happend
if (localStorage.getItem('lastChunkError') !== err.originalStack) {
// Save the last error to avoid an infinite reload loop if the chunk really does not exists after reload
localStorage.setItem('lastChunkError', err.originalStack);
location.reload(true);
} else {
// The chunk really does not exists after reload
console.error('We really don\'t find the chunk...');
}
}
// Run original handler
oldHandler(err);
};
我希望它能帮助您我解决了这个问题,将我的应用程序移动到AWS并将文件保存在S3中 参考此链接这是另一个问题,我的构建工作正常,该问题仅适用于在服务器上安装新捆绑包后不刷新页面的用户。您可以使用websockets在新构建后触发页面重新加载,但这有点过分了检查相同问题的答案:我将其放置在
app.component.ts
构造函数中,但它不起作用。因此,您将所有块保存到s3中,以便在部署后它们仍然在s3中,但这是否意味着在用户刷新页面之前,用户的应用程序将显示一个过时的版本?这是正确的@Benno,我的问题是,部署新版本后应用程序崩溃。您可以通过检查S3存储桶中JSON文件的版本号来处理这种情况,如果不匹配,请刷新应用程序。@Eugeniovalieras您可以详细介绍一下您的解决方案吗?用代码什么的?将文件移动到s3很难进行足够的描述