ruby-on-rails – 在Rails中缓存动态图像
我正在使用rmagick gem从控制器生成动态图像.控制器将id作为参数,查看模型,在现有图像上写入文本,然后输出.
我已经运行了一些基准测试,比较为每个请求生成它与写入磁盘,并使用send_data输出它(如果它已经存在).我没有注意到这两种方法之间的请求/秒差异很大. 是否有最佳实践来缓存图像或将其写入磁盘而不是为每个请求动态生成图像?一旦生成,这些图像将保持大部分静态,但我也希望在一定时间间隔后重新生成它. 解决方法
最佳做法是缓存生成的图像并允许Web服务器为它们提供服务.
在Rails应用程序前使用Apache或Nginx等Web服务器,并确保将映像写入Web服务器可以为其提供的位置.因此,如果您的Rails路由评估为/dynamic_images/3.png(调用带有id = 3和format = png的dynamic_images_controller动作节目),请将该图像写入public / dynamic_images / 3.png并使用控制器中的send_file发送它. 下次请求该文件时(/dynamic_images/3.png),网络服务器很乐意为它服务(缓存),Rails应用程序将永远不会受到攻击. 对于高级需求,例如重新生成图像,以及清理控制器代码,请查看paperclip gem. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |