如何使我的网站因图像速度变慢

时间:2015-02-12 06:50:47

标签: ruby-on-rails ruby

我正在开发一个ror中的一个站点,我已经完成了缓存,但由于图像,它的加载速度很慢。你能说我哪些是最好的方法来解决这个问题,让我的网站变得更快。或任何能帮助我的宝石。

1 个答案:

答案 0 :(得分:3)

让我们假设你确定这是问题的图像。如果是这样,您的图像应该由您的网络服务器直接提供(例如,nginx或apache),并且根本不应该涉及RoR。假设是这种情况,你可以做一些事情:

  • 确保图像的尺寸不大于必须显示的尺寸。例如,如果您的站点以300px乘以300px显示图像,请确保您不会意外地下载5000px乘5000px版本,并让浏览器调整大小。 (如果您是通过管理界面上传图片,则Carrierwavepaperclip等宝石可以帮助您调整上传图片的大小。

  • 创建图像时,请确保以适合的方式创建图像(例如,选择正确的类型 - jpg,gif,png-8,png-24,选择合适的质量,等等)。使用Photoshop的“Save for Web”功能。

  • 使用像ImageOptim(https://imageoptim.com/)这样的工具无损地缩小图像尺寸

  • 尽可能使用CSS - 例如,如果您使用图像作为背景渐变,或者使用带有发光效果的圆形按钮悬停,请不要。使用CSS。

  • 在适当的时候将图像合并到精灵中(如果你不熟悉那就用谷歌)

  • 不是将图像存储在您自己的服务器上,而是将它们存储在像Amazon S3这样的东西上。或者,使用CDN。

  • 缓存。你提到你已经完成了缓存。不确定你在那里做了什么,但确保你的浏览器在一段合理的时间内缓存图像(如果你使用Ruby on Rails资产管道和指纹图像,浏览器应该能够永久地缓存你的图像)。还要确保你抓住被发送回浏览器的内容。

  • 减少页面上的图像数量。如果你有一大堆图像,你的网站将会很慢 - 没有办法解决它。即使图像很小,对于页面上的每个图像,也需要将单独的请求发送到服务器。时间加起来,没有办法解决这个问题。