首页 > 解决方案 > 在不同域上处理的某些项目的最佳方法,例如 .com 和 .co.uk

问题描述

我有一个创建React应用程序项目,它将指向两个不同的域:.com.co.uk.

我想做一些本地化,例如如果.co.uk货币将设置为 pund,电子邮件地址将转到英国邮箱等。

做这个的最好方式是什么?我认为window.location.href通过在上下文中包装我的路线来传递价值,App.js但在使用效果方面存在一些问题,并且不确定这是否是最有效的方法。

标签: reactjsreact-reduxreact-router

解决方案


最好的方法是使用环境变量——这也允许对任一版本进行轻松调试。这将要求您为每个网站更新构建项目两次 - 一个版本用于 .co.uk,另一个版本用于 .com。

可以通过.env文件设置环境变量(取决于您是否希望它是本地的,您可以使用.env.local,如果您希望它仅用于生产,您可以使用.env.production,如果您想将生产值保持在本地,您可以使用.env.production.local)或者通过在构建之前添加环境值,就像这样REACT_APP_COUNTRY=uk yarn build

要在您的应用程序中访问变量,您必须确保它们以REACT_APP_. 您可以在您的项目中访问它们process.env.REACT_APP_COUNTRY(您不需要导入/安装任何库)。

如果您设置了 CI/CD,这将更容易 - 您只需要创建两个单独的管道来将一个版本部署REACT_APP_COUNTRY=uk到 .co.uk 站点,一个版本部署REACT_APP_COUNTRY=us到 .com 站点。


推荐阅读