如何在TYPO3中配置可通过.env管理的站点baseVariants
实现TYPO3通过.env配置baseVariants
步骤1:在.env文件中定义环境变量
直接在你的.env文件里添加对应环境的域名变量,示例:
# 生产环境基础域名 SITE_BASE=https://example.org # 当前环境的变体域名(每个环境单独设置) SITE_BASE_VARIANT=https://dev1.example.org
步骤2:修改站点配置文件
打开config/sites/<site-identifier>/config.yaml,将base和baseVariants改为读取环境变量的形式,无需为每个环境新增配置条目:
base: '%env(SITE_BASE)%' baseVariants: - base: '%env(SITE_BASE_VARIANT)%' condition: 'applicationContext != "Production"'
如果需要更精准匹配环境类型,可调整条件规则:
base: '%env(SITE_BASE)%' baseVariants: - base: '%env(SITE_BASE_VARIANT)%' condition: 'applicationContext matches "/Development.*/" || applicationContext matches "/Staging.*/"'
步骤3:确认环境变量加载正常
确保你正在使用的helhum/dotenv-connector已正确初始化(通常在config/system/additional.php或config/bootstrap.php中配置),保证TYPO3能解析到.env里的变量。
多站点场景优化
如果管理多个站点,可给每个站点的环境变量添加前缀区分:
# 站点1配置 SITE1_BASE=https://site1.example.org SITE1_BASE_VARIANT=https://dev-site1.example.org # 站点2配置 SITE2_BASE=https://site2.example.org SITE2_BASE_VARIANT=https://dev-site2.example.org
对应站点的config.yaml里使用%env(SITE1_BASE)%、%env(SITE1_BASE_VARIANT)%这类带前缀的变量即可。
通过这种方式,每个环境只需修改.env里的变体域名变量,无需改动TYPO3的站点配置文件,实现纯环境变量管理base变体。
内容的提问来源于stack exchange,提问作者Sybille Peters
相关产品推荐
相关产品推荐

