Rails 3.1+ 为移动和桌面客户端提供服务的方式

Posted

技术标签:

【中文标题】Rails 3.1+ 为移动和桌面客户端提供服务的方式【英文标题】:Rails 3.1+ way to serve both mobile & desktop clients 【发布时间】:2012-02-25 23:40:23 【问题描述】:

从 Rails 应用程序同时为移动和桌面浏览器提供服务的“最佳实践”是什么?

我不是在谈论移动端的自定义应用程序,而是主要(完全?!?)移动 Webkit。

我观看了Railscast 199,它展示了一种根据浏览器是否为移动设备来呈现和返回不同视图的技术。想知道这是否仍然更可取?只提供不同的 CSS 怎么样(假设内容基本相同)?理想情况下,该解决方案可以利用移动 JQuery 库之一(JQuery Mobile、JQTouch、Sencha Touch 等)。如何通过 资产管道 处理事情?

【问题讨论】:

【参考方案1】:

既然你提到了移动Webkit,我认为使用CSS3的媒体查询来适配各种设备会是一个不错的选择。以下是一些相关的博文:

    Responsive Design with CSS3 Media Queries

    How To Use CSS3 Media Queries To Create a Mobile Version of Your Website

【讨论】:

【参考方案2】:

Mobile_fu 仍然是一个很好的方法。

您需要一个单独的布局文件。对于同时提供这两个版本的应用程序,我在 /assets/application 和 /assets/mobile 有单独的 JS 和 CSS 文件夹。

我在 JQuery Mobile 上运气不错,但我也听说过 Sencha 的好消息,所以这可能是个人喜好。

【讨论】:

额外提示我忘了提及:不要忘记在您的 application.rb 中列出新的移动资产以进行预编译。

以上是关于Rails 3.1+ 为移动和桌面客户端提供服务的方式的主要内容,如果未能解决你的问题,请参考以下文章

将桌面和移动客户端连接到 Django 和 Sails MVC 网络框架

使用 kafka 作为消息代理为桌面/移动/Web 应用程序创建实时推送通知系统

在 Rails 3.1 中为 Mailer 和 View 提供自定义助手

架构最佳实践:Rails 和移动/Web 应用程序

为桌面、移动本机应用程序和 oAuth 功能设计 nodejs expressjs mongodb Webserver 流

带有服务器推送的移动和桌面 Web 应用程序