【问题标题】:Drupal configs locationDrupal 配置位置
【发布时间】:2019-01-30 14:07:05
【问题描述】:

ddev 似乎正在“站点/默认/文件/同步”(相对于 docroot)中查找配置文件,但是,我的 d8 设置在 project_root/config/sync 中有这些文件。如何让 settings.ddev.php 指向正确的目录。

【问题讨论】:

    标签: ddev


    【解决方案1】:

    ;tldr: 在你的 settings.php 中设置 $config_directories[CONFIG_SYNC_DIRECTORY] 并且 settings.ddev.php 不会做任何事情。

    ddev 仅在您之前没有为系统设置值的情况下将其用作后备。请在您的 settings.php 中设置 $config_directories[CONFIG_SYNC_DIRECTORY] ,这应该可以解决。 settings.ddev.php 仅执行此操作,如果尚未设置同步(通常在 settings.php 中),则将同步设置为默认值:

    // This specifies the default configuration sync directory.
    if (empty($config_directories[CONFIG_SYNC_DIRECTORY])) {
      $config_directories[CONFIG_SYNC_DIRECTORY] = 'sites/default/files/sync';
    }
    

    【讨论】:

    • 谢谢你的票。
    • @Dillon 您介意将标题编辑为更具描述性的内容吗?也许“使用 ddev 时如何设置 Drupal 8 配置同步目录?”
    • @rfay 我的安装是多站点并使用 config_split。我承认我不完全了解 D8 配置系统和 config_split,但我发现如果我从 settings.ddev.php 中删除这个 sn-p 则一切正常。如果我把它留在里面,我的“drush cim”会很困惑,不管我是否设置了$settings['config_sync_directory']。我知道我可以对 ddev.settings.php 进行版本控制,但是对所有这些 IP/端口进行硬编码对我来说似乎很危险。有什么建议吗?
    • 您可以覆盖 settings.ddev.php 可能在您的 settings.php 文件中执行的任何事情。因此,在 settings.php 包含 settings.ddev.php 之后添加您想要的任何设置要容易得多。如果你设置了 settings.local.php,你也可以在那里设置,只要 settings.ddev.php 之后包含 settings.local.php。
    • @rfay 谢谢!在包含 settings.ddev.php 文件后添加unset($settings['config_sync_directory']); 为我解决了它。
    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2021-02-03
    • 2012-02-14
    相关资源
    最近更新 更多