Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 转换为单个spa后,il8n在react应用程序中不工作_Javascript_Reactjs_Single Spa - Fatal编程技术网

Javascript 转换为单个spa后,il8n在react应用程序中不工作

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-

在将react应用程序转换为已实现il8n的单个spa后,我面临一个无法访问translation.json的问题,因此无法获取标签

我应该修改webpack.config.js中的某些内容以使其正确吗

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的正确路径检索它们。在不熟悉您想要实现的目标的情况下,您有两种选择:

  • 使用
    \uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
    动态创建正确的URL,指向此微前端所服务的资产,例如
    加载路径:`{uuuuuuuuuuuuuuuuuuuuu
  • 如果您有单独的i18n服务,请将URL指向该服务。这可能还需要
    跨域
    带凭据
    ,具体取决于配置方式

谢谢@filoxo