如何在Drupal 8/9中导出/导入自定义区块?
在Drupal 8/9中导出/导入自定义区块并支持跨环境修改内容
导出自定义区块
方法一:通过后台界面操作
- 登录Drupal后台,进入「配置 > 开发 > 配置同步」(路径:
/admin/config/development/configuration) - 切换到「导出」标签页,在配置类型列表里找到「自定义区块」,勾选需要导出的目标区块
- 点击「导出」按钮,系统会生成对应的YAML配置文件,保存好这个文件(文件名格式一般为
block_content.block.[区块机器名].yml)
方法二:使用Drush命令导出
打开终端,进入Drupal项目根目录,执行以下命令(替换[区块机器名]为实际名称):
# 导出指定区块到自定义目录 drush config:export --destination=./custom_block_config --include-config=block_content.block.[区块机器名]
导出的配置文件会保存在custom_block_config目录下。
导入到目标环境
方法一:后台界面导入
- 将导出的YAML文件上传到目标环境的配置同步目录(通常是
/sites/default/files/config_[随机哈希]/sync),或者直接在「配置同步」的「导入」标签页选择文件上传 - 进入「配置 > 开发 > 配置同步」的「导入」标签页,确认要导入的区块配置,点击「导入」完成操作
- 导入后,进入「结构 > 自定义区块」(路径:
/admin/structure/block/block-content)就能看到导入的区块
方法二:Drush命令导入
把导出的YAML文件放到目标环境的项目根目录,执行命令:
# 从指定目录导入配置 drush config:import --source=./custom_block_config # 或者直接导入单个文件 drush config:import --file=./block_content.block.[区块机器名].yml
跨环境修改区块内容的注意事项
默认导出的配置文件包含区块的初始内容,但导入后,区块内容会存储到目标环境的数据库中,不再受配置文件的约束:
- 直接进入「结构 > 自定义区块」找到目标区块,点击「编辑」即可修改内容,修改后的内容会保存在当前环境的数据库,后续的配置导入不会覆盖这些修改
- 如果需要在多个环境同步内容更新,不建议通过配置文件传递内容,更推荐在目标环境直接编辑,或者使用内容迁移类模块(比如Feeds)来同步内容
内容的提问来源于stack exchange,提问作者Nima Wangdi
相关产品推荐
相关产品推荐

