基于ruby的服务器的自适应映像

时间:2013-01-11 19:39:53

标签: ruby-on-rails ruby sinatra responsive-design rack

我想根据用户屏幕的大小向客户端提供图像,如果我有高分辨率图像,并且用户想要在移动设备上查看它我不想发送全高清相反,我想将缩小的图像发送到用户的设备维度,这将提高低带宽设备的加载速度

有一个解决方案here一个自适应图像检测访问者的屏幕大小,并自动创建,缓存和提供设备适当的重新缩放版本的网页嵌入式HTML图像。它适用于响应式设计,并与流体图像技术结合使用。(来自给定链接)

我看到php&基于apache的服务器,是否有基于ruby服务器的Web应用程序的解决方案? gem可能是......谢谢

2 个答案:

答案 0 :(得分:5)

媒体查询仅适用于CSS背景图片。

顺便提一下,像解决方案这样的Adaptive-Images并不难实现。

他们只是动态地提供图像来代替Web服务器,缓存经过调整的图像以加快处理速度并避免浪费资源。

根据保存请求设备解析的cookie的值调整和缓存图像。

说你在Rails中,请执行以下步骤:

  1. 将此javascript行附加到布局中的<head>部分:

    <script>document.cookie='resolution='+Math.max(screen.width,screen.height)+'; path=/‘;</script>

  2. 添加AdaptiveImagesController动作adapt_and_serve

  3. adapt_and_serve读取/缓存/适应并提供与每个请求相对应的文件(使用远期的exipiration标头)。

  4. routes.rb添加规则以捕获需要调整的图像请求并将其路由到AdaptiveImagesController#adapt_and_serve

答案 1 :(得分:-1)

我认为服务adaptive images没有什么特别之处。这取决于您如何设置前端:使用media queries来解析用户的屏幕尺寸并确定图像大小。您可以确保使用Rails框架。 Rails有许多响应式设计实现正常工作 - Twitter Bootstrap是一个着名的。