gpt4 book ai didi

ruby-on-rails - 在 Rails 中缓存动态图像

转载 作者:行者123 更新时间:2023-12-04 23:33:24 25 4
gpt4 key购买 nike

我正在使用 rmagick gem 从 Controller 生成动态图像。 Controller 将 id 作为参数,查找模型,在现有图像上写入文本,然后输出它。

我运行了一些基准测试,比较为每个请求生成它与写入磁盘并使用 send_data 输出它(如果它已经存在)。我没有注意到这两种方法之间的请求/秒差异很大。

是否有缓存图像或将其写入磁盘而不是为每个请求动态生成它的最佳实践?生成后,这些图像将大部分保持静态,但我也希望选择在特定时间间隔后重新生成它。

最佳答案

最佳做法是缓存生成的图像并允许网络服务器为它们提供服务。

在 Rails 应用程序前面使用 Apache 或 Nginx 等网络服务器,并确保将图像写入网络服务器可以为其提供服务的位置。因此,如果您的 Rails 路由评估为 /dynamic_images/3.png(它调用 dynamic_images_controller 操作 show,id=3 和 format=png),将该图像写入 public/dynamic_images/3.png 并在 Controller 中使用 send_file 发送它。

下次请求该文件 ( /dynamic_images/3.png ) 时,网络服务器将很乐意为它提供服务(缓存)并且 Rails 应用程序永远不会被命中。

对于高级需求,例如重新生成图像和清理 Controller 代码,请查看 paperclip gem。

关于ruby-on-rails - 在 Rails 中缓存动态图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1826195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com