Javascript 转换为单个spa后,il8n在react应用程序中不工作
在将react应用程序转换为已实现il8n的单个spa后,我面临一个无法访问translation.json的问题,因此无法获取标签 我应该修改webpack.config.js中的某些内容以使其正确吗Javascript 转换为单个spa后,il8n在react应用程序中不工作,javascript,reactjs,single-spa,Javascript,Reactjs,Single Spa,在将react应用程序转换为已实现il8n的单个spa后,我面临一个无法访问translation.json的问题,因此无法获取标签 我应该修改webpack.config.js中的某些内容以使其正确吗 import i18n from "i18next"; import { initReactI18next } from "react-i18next"; import i18nextHttpBackend from "i18next-http-
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import i18nextHttpBackend from "i18next-http-backend";
import Cookies from "js-cookie";
import LanguageDetector from "i18next-browser-languagedetector";
i18n
.use(i18nextHttpBackend)
.use(initReactI18next)
.use(LanguageDetector)
.init({
lng: Cookies.get("locale") || "es",
fallbackLng: "en",
debug: false,
supportedLngs: ["en", "es"],
interpolation: {
escapeValue: false,
},
});
export default i18n;
il8n在App.js中导入
导入“/i18n”
最初,在转换为单人水疗之前,该应用程序运行良好,并向
http://localhost:3000/locales/en/translation.json
但在将应用程序转换为单一spa后,get请求将失败。
我确实按照本教程将react应用程序转换为single spa
网页包配置
const { merge } = require("webpack-merge");
const singleSpaDefaults = require("webpack-config-single-spa-react");
const Dotenv = require("dotenv-webpack");
module.exports = (webpackConfigEnv, argv) => {
console.log(webpackConfigEnv);
const defaultConfig = singleSpaDefaults({
orgName: "WHATEVR",
projectName: "WHATEVER",
webpackConfigEnv,
argv,
});
return merge(defaultConfig, {
// modify the webpack config however you'd like to by adding to this object
plugins: [new Dotenv()],
devServer: {
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods":
"GET, POST, PUT, DELETE, PATCH, OPTIONS",
"Access-Control-Allow-Headers":
"X-Requested-With, content-type, Authorization",
},
},
});
};
尝试解决方案但仍未解决
问题是,以前,React应用程序还充当服务器,提供index.html文件以及其他静态资产(例如本地化的翻译json文件)。在单一水疗中心,情况不再如此;而现在是根配置。您需要更新您的url,以便库尝试从不再是根url的正确路径检索它们。在不熟悉您想要实现的目标的情况下,您有两种选择:
- 使用
动态创建正确的URL,指向此微前端所服务的资产,例如\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
加载路径:`{uuuuuuuuuuuuuuuuuuuuu
- 如果您有单独的i18n服务,请将URL指向该服务。这可能还需要
和跨域
,具体取决于配置方式带凭据