在我的一个项目中,我的用户将拥有我网站的专用部分 ({username}.example.org)。在那个子域中,我计划让他们轻松更改设计。我查看了一些已经这样做的在线网站,例如Tumblr、Posterous和Shopify。
关于这个应用程序的语言,我用 Django 启动它,我成功实现了“基于 url 名称的模板渲染,默认为 fallback”(http://someuser.example.com 将加载模板中的模板/someuser/ * 或在 templates/generic/* 中,如果在第一个中没有找到)。但如果它们更适合我的需要,我可以将其导出到 PHP 或 Play!Framework。
使用的模板引擎是Jinja2,因为它与 Django 模板引擎一样简单,易于学习且安全(没有 Python 代码可以(通常应该!)执行)。
这是我找到的每个解决方案的优缺点。我非常感谢您对此的想法以及您将采取哪种方式,为什么。谢谢。
注意:用户将对 HTML/CSS 有很好的了解。
更改变量(如标题颜色等)
优点:
- 简单安全
缺点:
- 太有限了,想要个性化他的网站的用户将无法使用此解决方案这样做
只上传 CSS
优点:
- 易于集成
- 安全的
缺点:
- 有限的
- 用户图像存储在哪里?(标志、背景、一些渐变等)
允许用户编辑模板(存储在数据库中)
优点:
- 改变更重要
- 用户(几乎)可以自由地做任何他想做的事(实现 GA、FeedBurner 等)
缺点:
- 他们将静态文件(徽标、背景图像、一些特殊效果(渐变))放在哪里?
- 模板存储在数据库中,每显示一个页面需要一个 SQL 请求
允许用户编辑模板(存储在文件中)
优点:
- 改变更重要
- 用户(几乎)可以自由地做任何他想做的事(实现 GA、FeedBurner 等)
- 可以启用 FTP 访问,使用户在他的模板目录中生根。
缺点:
- 静态文件同样的问题
另外,我卡住的地方是关于如何处理静态文件(图像、css、js):我看不到如何在 Apache(或 NGinx)中定义一个 VirtualHost,它会请求数据库查看哪些用户属于这个 url .
感谢您的帮助,我很感激!