Rails 一般支持多种页面布局模板的都是什么样的方案?

ywencn · 2013年06月01日 · 最后由 vkill 回复于 2013年06月02日 · 5227 次阅读

因为网站要支持多种页面模板,让用户可以自己选,特地来请教下。 我看了下 shopify,这种方式是不是太暴露了点? 另外假如我有 10 套模板,对应 10 个 VIEW 的话,那如果一旦某个地方逻辑修改,岂不是我要改 10 个页面?

请有经验的同学指导下。

自定义模版语言? 没搞过…记得 Wordpress 是让模版设计者直接在里面写 PHP 代码,里面貌似有一些 DSL

liquid 主要是安全,不可以 eval ruby 代码。 如果后端 model 变了太多的话,模版一个一个去改,我想不到更好的方法了。。。

多种页面布局的模板难道不是只改 layout.css 就可以了?

#3 楼 @Saito 一般来说页面布局也会变,不只是改下颜色

#2 楼 @clc3123 原来这玩意 ruby 可以直接用呀,找到了 https://github.com/Shopify/liquid/ 谢谢提醒!

#4 楼 @ywencn

CSS 不就是控制页面布局的嘛..

HTML 结构写得好怎么控制都行这种话我会乱说吗?要不然 media-query 不就没有根基了么。

#6 楼 @Saito 估计页面比较复杂,不同模版的模块都可能不一样。

#6 楼 @Saito http://themes.shopify.com/ 我看下了这些可能之变 css 的话搞不定呀

#8 楼 @ywencn shopify 用户能装修吗?我没用过。

#9 楼 @Saito 能 :D

楼主还可以参考一下 LocomotiveCMS

关于 Liquid 的运用,@saberma 应该有相当多的经验了。

#11 楼 @_samqiu oooops, 你这么一说我想起 shopqi 了,我去研究下。多谢提醒。

#1 楼 @huacnlee Liquid 只能用特定的语法,会更安全。

#10 楼 @_samqiu 装修的时候是用户自己写 Liquid 脚本吗?还是拖拉性质的...

#14 楼 @Saito 得自己写 HTML 和 CSS,完全由你控制,大概是不管怎么拖拉都不能满足高度自定义的需求吧。

这是最基本的骨架: https://github.com/Shopify/skeleton-theme

像 Squarespace 这种还提供了 SFTP 和 Git http://developers.squarespace.com/

如果需要取数据,Liquid 可以通过写 Class 继承 Liquid::Drop 来取到,Squarespace 也提供了类似的这种 Query Language http://developers.squarespace.com/squarespace-query/

Shopify 一个最典型的客户就是。。。GitHub http://shop.github.com/

#14 楼 @Saito 都不是,就是我们自己做个几十套模板给他们选。要是几十套模板要写几十个 VIEW 的话,那就累瘫痪啦!

#17 楼 @ywencn 要是需要缓存,还可以用 Shopify 提供的这种缓存,不过我也没用过。 https://github.com/Shopify/identity_cache

#15 楼 @_samqiu Got it!.. 这种方式挺好的。

#16 楼 @ywencn Liquid 的方式就是写很多套模板的节奏... 我觉得 partial 组织的好的话可能需要写多套 layout.erb .. 每套 layout.erb 对应 layout.css... 剩下的不用动。

@ywencn 是的,如果模板变量有大的改动,模板也得跟着改。 前期最好不要有那么多的模板,等到整个模板设计成熟了再扩展出大量的模板。

@Saito 确实,Shopify 的模板设计跟 Rails 的挺像的,也是有支持多套 layout。 模板设计者可以预先定制好常用的配置给用户选择,例如,选择要不要侧边栏,商品标题的字体颜色等,显不显示 分享按钮 等。

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