Rails Rails 项目如何整两套 CSS/js 供 web 和移动应用使用?如何能不冲突?

jksharer · 2014年05月08日 · 最后由 jksharer 回复于 2014年05月09日 · 2728 次阅读

目前有一个 Rails 项目,前端用的是 bootstrap。另外又做了一个基于 ratchet 的移动应用客户端,如果放在一个项目中时,这两套 CSS 框架有冲突,有相同的 class 类名,导致原来 web 应用的样式发生了变化。 但如果移动应用再新建一个 Rails 项目的话,原来的 Server API 无法很好地复用,业务逻辑都差不多。 怎么解决比较好呢?在一个项目中不同的 view 引用不同的 CSS?希望哪位大牛给予指点哈。

如果一个项目中需要两套完全不同的 CSS 和 JS,该如何操作?

已解决:挺简单,新建 application.mobile.css 和 application.mobile.js,不同的页面引用不同的文件即可。

rails4.1 不是对于移动支持很方便么?在 views 里对于同一个页面如果同时有*.html.**.html+phone.*的话,手机访问默认渲染+phone 的模版。layout 一样可以这样设置…然后手机和桌面版的 css/js 封装在两个文件中就可以了。

#1 楼 @cassiuschen 多谢。还没升级到 4.1,看来升一下级会比较好。

#2 楼 @jksharer 之前版本应该也可以手动实现,核心在于通过请求的 user-agent 判断渲染什么模版…具体实现我不太清楚,期待大牛来说…

stylesheet_link_tag 里有个参数是:media,一般情况下我们都是:media => "all"

但是你的情况就可以。。。:media=> "handheld"

这是 html 的东东。。。建议参考 http://www.w3school.com.cn/tags/att_link_media.asp

不过你的问题是:

在一个项目中不同的 view 引用不同的 CSS?

那么应该是用不用的 layout 处理不同的 view 就可以。layout 里在根据自己情况引用不同的 css,毕竟不同的 view 布局和元素可能都不一样。。。

我上面说的 media 是根据同一个 view,使用终端不同或者用途不同的时候,使用不同的 css。。。

#6 楼 @chairy11 其实我升级 4.1 主要就为了这个和 emus……而且默认约定无需配置非常爽…

#7 楼 @cassiuschen 话说小朋友你不用高考的么?怎么感觉你这么闲啊?

#9 楼 @cassiuschen 保送到哪里了?还是准备出国?

#10 楼 @chairy11 中传数字媒体……基本上一本线录…

#11 楼 @cassiuschen 哈哈哈哈,恭喜恭喜! 是搞影视特效之类的么?向着娱乐圈电影圈进军呢?

#12 楼 @chairy11 不…网络媒体艺术,用户交互那部分…打算辅修个新闻传播…

#13 楼 @cassiuschen 有空加我 QQ 私聊下罗,咱这太歪楼了。

#14 楼 @chairy11 没事,大家高兴就好

需要 登录 后方可回复, 如果你还没有账号请 注册新账号