Google Cloud: response-i18следующий не загружает файлы перевода json в приложение React - PullRequest
0 голосов
/ 11 мая 2018

У меня та же проблема, что и здесь ( вопрос переполнения стека ), за исключением того, что оба моих предмета настроены правильно.

Моя конфигурация i18n.js настроена следующим образом.

import i18n from 'i18next';
import Backend from 'i18next-xhr-backend';
import { reactI18nextModule } from 'react-i18next';

i18n
  .use(Backend)
  .use(reactI18nextModule)
  .init({
        interpolation: {
            // React already does escaping
            escapeValue: false
        },
        lng: 'en',
      fallbackLng: 'en',
      backend: {
        loadPath: '/locales/{{lng}}/translation.json',
        allowMultiLoading: true
      },
      debug: true,
      react: {
        wait: true
      }
  });

export default i18n;

Я получаю эту ошибку i18next::backendConnector: loading namespace translation for language en failed failed parsing locales/en/translation.json to json

Я убедился, что мой каталог locales находится в моем каталоге public. Я также подтвердил, что каталог post npm run build locales копируется в каталог build.

В моей промежуточной среде я открываю вкладку «Сеть» в Chrome Dev Tools и открываю translations.json в новой вкладке. Меня перенаправили на правильный URL https://example.com/locales/en/translation.json, но я перенаправлен на свой index.html

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

В App Engine Standard вам требуется обработчик в вашем файле конфигурации app.yaml, который связывает шаблон URL со статическими файлами, загруженными.Вы можете использовать регулярное выражение для определения файлов расширения, которые будут рассматриваться как статический файл в пути, указанном для статических файлов.

например.из конфигурации app.yaml для статических файлов в App Engine Standard .

handlers: - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$

, где

url = шаблон URL, который будет обрабатыватьсяв качестве путей к статическим файлам.
static_files = путь к статическим файлам.
upload = regex, который соответствует путям к файлам для всех файлов, на которые этот обработчик будет ссылаться при развертывании приложения.

0 голосов
/ 14 мая 2018

Я понял, что мне не хватало того, что я развертываю в Google Cloud, и конфигурация для этого требует от меня указать, какие типы файлов разрешено использовать в качестве статических ресурсов. Я добавил json в мою конфигурацию, и теперь она работает.

handlers:
- url: /(.*\.(html|css|js|png|jpg|woff|json))
  static_files: build/\1
  upload: build/(.*\.(html|css|js|png|jpg|woff|json))
...