ruby-on-rails - 基于 ruby​​ 的服务器的自适应图像

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

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

有一个解决方案 here

自适应图像会检测访问者的屏幕尺寸,并自动创建、缓存和提供适合设备的网页嵌入 HTML 图像的重新缩放版本。它旨在与响应式设计一起使用,并与流体图像技术相结合。(来自给定的链接)

我看到基于 phpapache 的服务器的此类解决方案,是否有针对具有基于 ruby​​ 的服务器的 Web 应用程序的解决方案? gem 可能是...谢谢

最佳答案

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

顺便说一下,类似自适应图像的解决方案并不难实现。

它们只是代替 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读取/缓存/适应并提供与每个请求相对应的文件(使用遥远的 future 过期 header )。

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

关于ruby-on-rails - 基于 ruby​​ 的服务器的自适应图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285473/

相关文章:

ruby-on-rails - 获取 Rails 中除空列以外的所有条目

ruby-on-rails - 如何检查 HTTP 请求延迟/等待时间的原因?

ruby-on-rails - 在 Rails 中通过单击让 Flash 消息消失

ruby - 映射枚举器

html - 基于浏览器的 Ruby 应用程序框架

ruby - Sinatra 中的数据库

ruby-on-rails - Rails3 和回形针

java - Ruby 中的 Java 静态方法是什么样的?

ruby - 在 Sinatra 中获取唯一的 session ID

ruby-on-rails - 如果特定键,则哈希深度转换所有值