Angularjs 从Azure Blob for Express.js服务器提供HTML文件

Angularjs 从Azure Blob for Express.js服务器提供HTML文件,angularjs,node.js,azure,express,blob,Angularjs,Node.js,Azure,Express,Blob,因此,我有一个Express.js服务器和一个Angular.js前端,通过Express本身提供服务,而不是部署在外部。我们有多个网站的主题,可以在飞行切换。现在主题数量是可控的,但我们预计它将达到数千甚至一万 在当前的实现中,我们将静态主题文件HTML、CSS存储在部署包本身中。随着主题数量的不断增加,部署包的大小也在快速增长 现在,我正在考虑将主题移动到外部存储Azure Blob,然后将静态内容从Azure Blob存储流式传输到Express.js,并相应地提供服务 在这种情况下,Az

因此,我有一个Express.js服务器和一个Angular.js前端,通过Express本身提供服务,而不是部署在外部。我们有多个网站的主题,可以在飞行切换。现在主题数量是可控的,但我们预计它将达到数千甚至一万

在当前的实现中,我们将静态主题文件HTML、CSS存储在部署包本身中。随着主题数量的不断增加,部署包的大小也在快速增长

现在,我正在考虑将主题移动到外部存储Azure Blob,然后将静态内容从Azure Blob存储流式传输到Express.js,并相应地提供服务


在这种情况下,Azure Blob存储或任何其他存储是否会成为瓶颈?还是有更好的解决方案来解决这个主题计数问题?

Blob存储是一个很好的解决方案。 如果您使Bob存储公开可读,那么您可以直接从blob存储提供静态文件,它们甚至不必通过您的Express服务器提供,从而减轻了所有这些负担。我经常使用css来实现这一点,并且有一些应用程序可以从blob存储中为整个前端应用程序(包括脚本)提供服务;我只有一个html页面,由我的主服务器提供,带有指向blob存储的脚本标记。 对于Angular 1,我只有一个构建步骤,它将所有html模板捆绑在脚本包中

稍后,您可以将Bob存储升级为适当的CDN,这意味着您可以将所有静态内容本地提供给用户


FWIW,我相信haveibeenpwned从Azure Blob存储中提供静态内容。

如果主题系统更具动态性,该怎么办?主索引html本身在不同主题之间差异很大。对于每个主题,CSS和Angular中的一些逻辑也会有所不同。我们还需要一些余地,允许用户编辑模板并为自己加载一个版本。尽管我们在express上的许多内部代码已经允许这样做,但我只是想知道我们是否会在以后感到压力。想象一下,在一台express服务器上托管了数百个甚至数千个微站点。不过,每个网站不会有太多点击率。这更多的是如何编写代码的问题。使用Angular,您可以轻松获得一个通用index.html,并在脚本文件中显示所有内容。