Ошибка загрузки модели: SyntaxError: Неожиданный токен '<', "<!DOCTYPE"... недопустимый JSON

Я создаю AI-тренера по йоге, используя ml5 и p5 на React.

Я создал компонент, который принимает индивидуальную позу в качестве опоры из локального файла JSON. Компонент также загружает модель, которую я добавил в общую папку. Цель этого компонента — обнаружить определенную позу йоги, и компонент динамически возвращает имя позы, обнаруженное с веб-камеры.

Я протестировал две страницы веб-камеры. назовем это страницей 1 и страницей 2. Страница 1 работает. URL-адрес: /практика. страница 1 ведет к веб-камере 1. Веб-камера 1 работает.

страница 2 URL-адрес: /practice/poseId. страница 2 ведет к другому компоненту веб-камеры, веб-камера 2 имеет тот же код, что и веб-камера 1, за исключением того, что она принимает реквизит, и этот реквизит представляет собой конкретную позу, соответствующую идентификатору.

На второй странице я получаю эту ошибку

Error loading model: SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON

Он указывает на этот код

        const modelInfo = {
          model: "model/model.json",
          metadata: "model/model_meta.json",
          weights: "model/model.weights.bin",
        };

        fetch(modelInfo.model)
          .then((response) => {
            if (!response.ok) {
              throw new Error(`HTTP error! status: ${response.status}`);
            }
            return response.json();
          })
          .then((data) => {
            console.info("Model JSON:", data);
            brain.load(modelInfo, brainLoaded);
          })
          .catch((error) => {
            console.error("Error loading model:", error);
          });

Я не понимаю, почему мой компонент работает с URL-адресом /practice, но когда я добавляюposeId (/practice/:poseID), он показывает эту ошибку, хотя это тот же код.

Ошибка связана с URL-адресом, который заканчивается на /practice/:poseId, например. /практика/1.

Пример ошибки (вы не видите метку позы внизу):

Пример (работает, если URL-адрес страницы /practice)

Это мой репозиторий: https://github.com/laura-nguyen/yoga-ai/tree/feature/page-pose-cam

🤔 А знаете ли вы, что...
JavaScript имеет множество встроенных объектов, таких как Array, Date и Math.


56
1

Ответ:

Решено

Проблема в том, что вы используете один и тот же относительный путь к двум страницам в разных каталогах. На localhost:5174/practicemodel/model.json означает localhost:5174/model/model.json, а на localhost:5174/practice/1 это значит localhost:5174/practice/model/model.json.


Интересные вопросы для изучения

Ошибка: оценка не удалась: TypeError: невозможно прочитать свойства неопределенного значения (чтение «по умолчанию»)Как правильно развернуть SvelteKit на собственном сервере, не отвлекая пользователя?Javascript: найти значение узла посредством рекурсивной итерацииСобытие onsubmit не работает, если в форме введено имя подтвержденияРегулярное выражение для сопоставления чисел >= 150 000 с включенными пробелами не работает должным образомПостоянное состояние ожидания развертывания AWS AmplifyКак использовать динамически вычисляемые классы попутного ветра в пользовательском интерфейсе Shadcn с помощью реакцииТип элемента JSX «<Component>» не содержит ошибок конструкции или сигнатур вызовов И БОЛЬШЕVITE: Не удалось загрузить сценарий модуля: ожидался сценарий модуля JavaScript, но сервер ответил MIME-типом «text/html». Строгий тип MIMEПочему бы не поместить хук useState в оператор if?