在我的一个项目中,我的用户将拥有我网站的专用部分({username} .example.org)。在该子域中,我计划允许他们轻松更改设计。 我看了一些已经这样做的在线网站,例如Tumblr,Posterous和Shopify。
关于这个应用程序的语言,我是用Django开始的,我成功实现了基于url名称的“模板渲染,默认为回退”(http://someuser.example。 com将在templates / someuser / *或templates / generic / *中加载模板(如果在第一个中没有找到)。 但是如果它们更适合我的需要,我可以将它导出到PHP或Play!Framework。
使用的模板引擎是Jinja2,因为它就像Django模板引擎一样简单,易于学习和安全(没有Python coode可以(通常应该!)执行)。
以下是我找到的每个解决方案的优缺点。我真的很感激你对此的看法以及你会采取哪种方式,为什么。感谢。
注意:用户将对HTML / CSS有很好的了解。
更改变量(如标题颜色等)
优点:
缺点:
仅上传CSS
优点:
缺点:
允许用户编辑模板(存储在数据库中)
优点:
缺点:
允许用户编辑模板(存储在文件中)
优点:
缺点:
另外,我遇到的问题是关于如何处理静态文件(images,css,js):我看不到如何在Apache(或NGinx)中定义一个虚拟主机,它会请求数据库查看哪些用户属于这个网址。
感谢您的帮助,我感谢!
答案 0 :(得分:4)
好的,我会根据自己的所作所为以及我的研究来回答自己。
正如史蒂夫所提到的,你必须非常小心让用户自定义页面布局。
必须对风险进行充分评估!
就我而言,允许用户更改完整的HTML / CSS / JS是可行的,例如Posterous或Tumblr。
风险是:
如果对这两个条件进行了充分评估,则选项“允许用户编辑模板(存储在数据库中)”是一个很好的解决方案。
但是如果你担心数据库可能有太多的点击,那么最后的解决方案,即“允许用户编辑模板(存储在文件中)”,如果可能的话:/ p>
嗯,我想我已经涵盖了整个问题。我可能会错过一些积分,如果是这样,请添加评论或新帖子,我将完成答案。