我想创建像shopify.com这样的网络应用。 用户可以获取子域(或域),主题并拥有自己的商店。
我该怎么做? 创建主应用程序,像新的独立版本一样自动部署,并通过git进行更新?
我正在使用Rails 3。 谢谢你的建议。
基于回复: 当我选择只使用一个应用程序(没有多个实例)并为用户提供他的子域名时,它将看起来像他们自己的网站。但是一切都在一个数据库中(这是个好主意?)。我怎样才能在Rails应用程序中拥有多个主题?
答案 0 :(得分:5)
查看LocomotiveCMS,特别是routing system。机车实际上在单个轨道应用程序内托管多个站点。它通过在请求URL进入时检查请求URL并使用设置为处理域的站点设置current_site
变量来完成此操作。然后current_site
实际上只是一个对象,其中包含正在提供的特定网站的所有页面,内容,设置等。
因此,为了回答您的问题,我认为一个好的解决方案是让您的rails应用程序能够根据域提供多个站点。它并不那么难,而且对我而言似乎不像试图自动部署应用程序的新实例那样脆弱。
答案 1 :(得分:1)
到目前为止,我已经了解到,您希望让您的用户拥有自己的子域名,不同的主题,但功能相同。用户只需要感受一下属于自己的东西。
当然,您需要拥有一个支持多个子域的应用程序。 一个快速的谷歌搜索给了我[http://37signals.com/svn/posts/1512-how-to-do-basecamp-style-subdomains-in-rails]。也许你可以从这里获得一些见解。
例如,如果您的服务是http://www.myfi.com
,那么简单的想法可以是:
http://customer1.myfi.com
。*.myfi.com
,以便世界上任何人都使用anysubdomain.myfi.com
,它会出现在您的应用中。customer1
),并且需要在会话中设置它。 刚刚尝试了一下这里实施的一瞥。如果你对特定的事情感到困惑,也要分享。
修改强>
每当你想到多个主题时,你必须拥有完全由css和js驱动的简单设计。 app/view
文件应仅包含具有类名或ID的内容和HTML节点。
一般来说,UI设计师可以就如何制作这种主题机制提出更多有用的想法。但我能感觉到的是,根据客户选择的主题,你必须加载不同的css和js。
实际上,这些策略可以无限复杂和可扩展,但从容易的事情开始总是明智的。然后想法会自动演变成更好的想法。