Rails Assets,在生产模式下可能有预编译和非编译?
Rails Assets, possible to have pre-compiled and non-compiled in production mode?
A Rails 6 个应用程序,生产模式。
情况是这样的,我有许多将在视图中引用的图像文件。
有些我已经提前有了,我可以在生产环境中使用应用程序预编译和部署这些图像资产。那里没有问题。
但是,应用程序在部署后 运行 会不时以临时方式从远程源导入更多图像,这些图像也会在视图中引用。
所以看起来我会混合使用预编译和未编译的图像... 'feel' 不对。
我想我根本无法预编译,并设置
config.assets.compile = true
但是 rails 文档指出在生产模式下不推荐这样做。
我确定我不是第一个尝试这样做的人,我想知道我是否忽略了一个久经考验的解决方案?
有什么想法吗?提前致谢。
如果图像是在运行时获取或编译的,则它们不属于资产管道。管道的全部意义在于简化部署和开发过程,以便资产在部署时自动 compiled/optimized。资产是 CSS、JS 和图像等开发人员关注的文件。
AFAIK Rails 不可能同时使用这两种模式,也不可取,因为它会在生产中增加大量开销。
如评论中所述,这些图像应与资产管道分开存储,最好存储在针对文件传输优化的云平台(如 S3)中,而不是在您的 Rails 应用中。您的应用应该只将 URL 存储到这些文件中。
这里处理用户文件上传和从远程源导入的方式没有重大区别,只是源略有不同。 ActiveStorage 和 CarrierWave 等库可以在导入图像时在运行时进行图像转换。
A Rails 6 个应用程序,生产模式。
情况是这样的,我有许多将在视图中引用的图像文件。
有些我已经提前有了,我可以在生产环境中使用应用程序预编译和部署这些图像资产。那里没有问题。
但是,应用程序在部署后 运行 会不时以临时方式从远程源导入更多图像,这些图像也会在视图中引用。
所以看起来我会混合使用预编译和未编译的图像... 'feel' 不对。
我想我根本无法预编译,并设置
config.assets.compile = true
但是 rails 文档指出在生产模式下不推荐这样做。
我确定我不是第一个尝试这样做的人,我想知道我是否忽略了一个久经考验的解决方案?
有什么想法吗?提前致谢。
如果图像是在运行时获取或编译的,则它们不属于资产管道。管道的全部意义在于简化部署和开发过程,以便资产在部署时自动 compiled/optimized。资产是 CSS、JS 和图像等开发人员关注的文件。
AFAIK Rails 不可能同时使用这两种模式,也不可取,因为它会在生产中增加大量开销。
如评论中所述,这些图像应与资产管道分开存储,最好存储在针对文件传输优化的云平台(如 S3)中,而不是在您的 Rails 应用中。您的应用应该只将 URL 存储到这些文件中。
这里处理用户文件上传和从远程源导入的方式没有重大区别,只是源略有不同。 ActiveStorage 和 CarrierWave 等库可以在导入图像时在运行时进行图像转换。