如何在 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后可以做的是:
- 在 CloudFront 中为默认 https://hdfhhfh.cloudtfront.net/ like https://images.example.com/
添加一个别名(备用域名)
在您的 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/*
,使用这种方法我不关心它。
目前,Sails 提供托管在 assets/images 文件夹中的图像,但是,我需要一种不同的方法,因为图像将托管在 CDN 系统 (AWS Cloudfront) 中,因此图像的 URLs 遵循这样的结构:
https://hdfhhfh.cloudtfront.net/images/image.jpg
因此,我该如何处理?我该如何处理才能让 Sails 自动为我生成 URL?
对于开发环境,没关系,对于生产环境,我需要 HTML/EJS 中的所有图像都指向 CDN。
上传图片到S3后可以做的是:
- 在 CloudFront 中为默认 https://hdfhhfh.cloudtfront.net/ like https://images.example.com/ 添加一个别名(备用域名)
在您的 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/*
,使用这种方法我不关心它。