我有 Next.js Web应用程序托管在 Vercel 上,其数据库存储在 Mongo Cloud Atlas 上。我的目标是评估成本,速度和便利性
Next.js 可以通过将静态文件与网站itslef放在同一文件夹中来提供静态文件。话虽这么说,从next或Mongo提供图像的速度更快吗?
而且,从成本的角度来看,mongo不是免费的。
答案 0 :(得分:2)
我在前端使用相同的堆栈Next.js
,在后端使用MongoDB
,这就是我解决问题的方法:
我将图像存储在CDN节点上(实际上,我的托管服务提供商会这样做,就我而言,我的Next.js应用未部署在 Vercel 上),并且在MongoDB中,我将http链接存储到一定的图像。
喜欢这个:
{
_id: 123,
sku: 321,
media_uri: "https://...."
}
由于Akamai存储了静态资产(图像等),因此我始终有指向img
的静态链接。是的,uri到图片根本没有改变,无论哪个CDN节点会回复它。我知道,这毫无意义,我不知道它怎么可能,但它确实有效。
在1920x1080(有时甚至是2K分辨率图片)上减少1s,当然,它们已经过优化。
关于价格,我的项目使用的是15+美元的VPS(前端+后端),因此我没有使用Atlas(相反,我正在使用mongo社区免费版)以及build
和deploy
手动Next.js。
实际上,我的大部分费用都是后端产生的。 Mongo处理10个不同集合中的数百万个文档,并处理繁重的aggregation
查询。
如您所知,它不是localhost/test
类型的项目。
所以我的观点是,如果将Vercel用作平台并使用CDN进行描述,那么,将其保存在src
项目的相对文件夹中,并使用所有next.js
的缓存和Vercel deploy
的子句。