Я создаю 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.
Проблема в том, что вы используете один и тот же относительный путь к двум страницам в разных каталогах. На localhost:5174/practice
model/model.json
означает localhost:5174/model/model.json
, а на localhost:5174/practice/1
это значит localhost:5174/practice/model/model.json
.