0

我正在使用gatsby-plugin-intl创建一个多语言 Gatsby 站点,并且路由工作正常,但它引入了文件static夹中文件的一些问题。

在我的gatsby-config.js文件中,我得到了

{
      resolve: `gatsby-plugin-intl`,
      options: {
        // language JSON resource path
        path: `${__dirname}/src/intl`,
        // supported language
        languages: [`es`, `en`],
        // language file path
        defaultLanguage: `es`,
        // option to redirect to `/es` when connecting `/`
        redirect: false,
      },
    },

然后在我的landingPage.js组件中

<img
    className="w-36 text-secundario fill-current"
    src="massick-2x3.svg"
    alt="Logo"
/>

在那里,src="massick-2x3.svg"意味着该文件位于 中static/massick-2x3.svg,它适用于默认语言西班牙语(/es连接时没有重定向到/)但随后我收到英语的 404 错误,因为src更改为static/en/massick-2x3.svg不存在。

作为一种解决方法,我在其中创建esen子文件夹static并将其所有内容复制static到它们中,并且它正在工作。但是,这不太理想,我每个资产都有 3 个副本。

我想知道是否有办法防止这种行为。

如果您需要更多信息,这是我的回购

4

1 回答 1

0

该项目似乎已被放弃或停止(最后一次提交是在 3 年前),因此它可能与您正在运行的 Gatsby 版本(最新版本)不完全兼容。

在将我的旧项目升级到最新的 Gatsby 版本时,我在使用该插件时遇到了同样的奇怪行为;在我的 Gatsby v2 版本中,该插件运行良好,但从 3.4 开始表现异常。

我建议迁移/转向gatsby-plugin-react-i18next配置非常相似并且应该没什么大不了的插件。这也是这个GitHub 线程(来自同一个插件仓库)的建议

于 2021-12-24T07:08:11.563 回答