Как запретить gatsby-plugin-intl локализовать URL-адреса статических папок
Я создаю многоязычный сайт Gatsby, используя и маршрутизация работала нормально, но gatsby-plugin-intl,возникли некоторые проблемы с файлами в папке.
В моем
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
, которого не существует.
В качестве обходного пути я создал
es
и
en
вложенных папок в и скопировал все содержимое
static
им обоим, и это работает. Однако это далеко не идеально, у меня есть по 3 копии каждого актива.
Мне было интересно, есть ли способ предотвратить такое поведение.
Если вам нужна дополнительная информация, это мое репо
1 ответ
Проект кажется заброшенным или прекращенным (последняя фиксация была сделана 3 года назад), по этой причине он может быть не полностью совместим с вашей текущей версией Gatsby (которая является последней).
Я сталкивался с таким же странным поведением этого плагина при обновлении своих старых проектов до новейших версий Gatsby; в моих версиях Gatsby v2 плагин работал отлично, но начиная с 3.4 начал вести себя странно.
Я бы предложил мигрировать/перейти кgatsby-plugin-react-i18next
плагин, где конфигурация очень похожа, и это не должно иметь большого значения. Это также то, что предлагается в этой ветке GitHub (из того же репозитория плагинов)