【问题标题】:Serving HTML files from Azure Blob for Express.js server从 Azure Blob for Express.js 服务器提供 HTML 文件
【发布时间】:2017-11-05 21:33:10
【问题描述】:

所以,我有一个 Express.js 服务器和一个 Angular.js 前端(通过 express 本身提供服务,而不是在外部部署)。我们为网站提供了多个“主题”,可以随时切换。现在主题数量是可控的,但我们预计它会达到数千个(甚至可能是万个)

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

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

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

【问题讨论】:

    标签: angularjs node.js azure express blob


    【解决方案1】:

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

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

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

    【讨论】:

    • 如果主题系统更动态一点怎么办?主索引 html 本身在主题之间变化很大。对于每个主题,CSS 和 Angular 中的一些逻辑也各不相同。我们还需要一些余地来允许用户编辑模板并为自己加载一个版本。尽管我们在 express 上的很多内部代码已经允许这样做,但我只是想知道我们以后是否会被压垮。想象一下在一台快速服务器上托管的数百个(甚至数千个)“微型站点”。不过,每个网站都不会获得太多点击量。
    • 这更多的是您如何编写代码的问题。使用 Angular,您可以轻松拥有一个通用的 index.html,并在脚本文件中显示所有内容。
    猜你喜欢
    • 2015-09-12
    • 2018-03-10
    • 2013-03-25
    • 2021-06-07
    • 2018-05-14
    • 2020-08-09
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    相关资源
    最近更新 更多