如何在 Sails 中为图像生成外部 url?

How can I generate the external url for images in Sails?

目前,Sails 提供托管在 assets/images 文件夹中的图像,但是,我需要一种不同的方法,因为图像将托管在 CDN 系统 (AWS Cloudfront) 中,因此图像的 URLs 遵循这样的结构:

https://hdfhhfh.cloudtfront.net/images/image.jpg

因此,我该如何处理?我该如何处理才能让 Sails 自动为我生成 URL?

对于开发环境,没关系,对于生产环境,我需要 HTML/EJS 中的所有图像都指向 CDN。

上传图片到S3后可以做的是:

  1. 在 CloudFront 中为默认 https://hdfhhfh.cloudtfront.net/ like https://images.example.com/
  2. 添加一个别名(备用域名)
  3. 在您的 Sails 配置中(例如 custom.js)添加一个全局变量,例如:

    images_url: 'https://images.example.com/'

然后 return 此 URL 与 images/image.jpg 连接,例如 ${images_url}images/image.jpg 从您的 API 到您的前端。

在思考如何解决这个问题后,我决定在客户端和后端之间配置一个反向代理。

我使用 Nginx 配置了一个规则,将 /images/* 重定向到 Cloudfront 端点,这样我就避免了在我的项目中放置硬代码。此外,我有 css 个文件指向 /images/*,使用这种方法我不关心它。