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

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

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

请有经验的同学指导下。

共收到 21 条回复

自定义模版语言? 没搞过…记得 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。 模板设计者可以预先定制好常用的配置给用户选择,例如,选择要不要侧边栏,商品标题的字体颜色等,显不显示 分享按钮 等。

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