【问题标题】:Silverstripe :: Multiple sitetreeSilverstripe :: 多个站点树
【发布时间】:2015-09-22 02:02:56
【问题描述】:

我们正在重组我们的网站。我们有很多页面(很多)跨越 5 个级别。我们的新用户体验设计师正试图解决这个问题。作为其中的一部分,她提议对页面/内容进行重组(这种重组至少需要 6 周时间)。该组织不能让网站冻结 6 周。所以我的问题是

  1. 有没有什么简化的方法可以在不影响生产站点的情况下修改站点结构...如何处理这个问题
  2. 我们能否创建现有站点树的副本(即有多个站点树,一个处于活动状态,一个处于草稿状态)并在那里进行更改?一旦我们准备好了,我们可以切换吗? (只是一个想法)
  3. 请出主意

干杯 研发

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    1) “重组过程”会涉及编码工作吗?为什么不直接将数据库和代码复制到另一个主机实例(例如 staging.yourdomain.com)并在那里进行增强? (那里的任何更改都不会影响当前站点)。

    实际上,在大多数开发环境中,通常至少运行两个版本的站点,其中一个用于测试/暂存站点,另一个用于 更改在上线之前得到客户的批准。

    创建许多未使用的页面或在 生产现场。

    2) 您想在生产实例上拥有两个站点树副本吗?好吧,您可以使用 silverstripe-copybutton 模块来完成它,它将制作页面的精确副本。

    但这不是一件好事。稍后您将需要删除很多东西,并且您的数据库可能会增长,因为站点树是一个版本化的对象,它会记住以前的修订。此外,如果还需要一些编码工作,则不能在生产站点上真正进行,因为它会影响访问者可见的页面。

    但是,如果更改仅与页面内容有关,并且您无法拥有单独的站点实例,则可以使用复制模块复制页面并在复制的版本中进行更改,然后替换旧的与新的。

    这不是推荐的方式,您必须非常小心。如果您硬删除任何依赖项,例如一个页面使用的另一个对象或图像,它也会从原始版本中删除,因为目标对象不再存在。

    3) 见上文

    【讨论】:

      【解决方案2】:

      1) 在 SilverStripe 中移动页面不会影响生产站点,假设您说的是“实时”站点。

      2) 当您在 SilverStripe 中移动页面时,它被视为“草稿”更改,并且在获得批准和发布之前不会在“实时”网站上生效。所以基本上 SilverStripe 已经按照您想要/需要的方式工作,因为 SilverStripe 中的“实时”和“草稿”状态已经像 2 个不同的站点树。不过还有一些其他的事情需要考虑。如果您还需要/想要在此过程中更改内容,则页面重组将在您保存和发布内容更改时生效。如果您进行完全重组,您可以通过批处理操作使所有内容生效。

      3)SilverStripe Australia 构建了用于集成和内容迁移的外部内容模块和后续连接器。 SilverStripe 到 SilverStripe 连接器提供了将另一个实例连接到当前系统并在新系统的管理界面中表示它的站点树的能力。然后,您可以有选择地将站点移动到新系统中的新结构中。

      https://github.com/silverstripe-australia/silverstripe-connector

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多