Ошибка Uncaught Erry AR JS Использование Django для сайта на основе ARJavascript

Форум по Javascript
Ответить
Anonymous
 Ошибка Uncaught Erry AR JS Использование Django для сайта на основе AR

Сообщение Anonymous »

mindar «DrangeError: дополнительный байт (S), найденные в буфере [1]» + «Целевой элемент AR не найден»
Проблема
mindar throws drangeError: дополнительный xxxx byte (s), найденные в Buffer [1] при загрузке файла маркера .mind . Дополнительные журналы показывают целевой элемент AR, не найденные и предупреждение о предоставлении сообщений о сообщении браузера. /> [*] mindar-image-aframe
[*] Маркерный путь:/media/markers/baby121/baby121.mind

наблюдаемые журналы (триммированные)

Код: Выделить всё

Valid MIND format detected: 88919 byte payload
Received 88927 bytes, Content-Type: application/octet-stream
Uncaught (in promise) RangeError: Extra 4167 of 4168 byte(s) found at buffer[1]
AR target element not found
< /code>

 корневая причина < /h2>
Mindar проверяет длину маркера по своему заголовку. Слученный файл содержит  дополнительные байты [/b] по сравнению с заголовком (например, ожидается 88919, получен 88927). Обычно это происходит, когда:
[list]
[*] Edge/Proxy (Cloudflare/Tunnel и т. Д.) поврежден.AR target element not found
-это отдельная Dom Timing/Selector Проблема: отслеживание начинается до существует отслеживание перед .
Предупреждение о канале сообщений обычно происходит из разгибания Brrowser и не связано. /> a) Служить .mind < /code> файлы как необработанные, несжатые двоичные двойные

Код: Выделить всё

Content-Type: application/octet-stream
[*] no content-encoding (отключить gzip/brotli)
[*] Избегайте каких-либо преобразований ответов.
[/list]
nginx
location /media/markers/ {
types { application/octet-stream mind; }
default_type application/octet-stream;
gzip off; # ensure no compression
add_header Cache-Control "public, max-age=31536000, immutable";
}

apache

Код: Выделить всё

AddType application/octet-stream .mind
SetEnvIfNoCase Request_URI "\.mind$" no-gzip=1
Header set Cache-Control "public, max-age=31536000, immutable"
cloudflare/proxy
Добавить правило в cash-cache/transforms для *.mind или обеспечение соблюдения содержимого: идентификация при происхождении. Отключите Minify/Compression для этого пути.
b) Проверьте, что обслуживаемые байты соответствуют источнику
node Quick check

Код: Выделить всё

const fs = require('fs');
const https = require('https');
const crypto = require('crypto');

// local file
const a = fs.readFileSync('./baby121.mind');
console.log('local', a.length, crypto.createHash('sha256').update(a).digest('hex'));

// remote file
https.get('https://your-domain/media/markers/baby121/baby121.mind', res => {
const chunks = [];
res.on('data', d => chunks.push(d));
res.on('end', () => {
const b = Buffer.concat(chunks);
console.log('remote', b.length, crypto.createHash('sha256').update(b).digest('hex'));
});
});
Если длины/хэши отличаются, сервер/прокси изменяет файл. Исправить конфигурацию и/или повторную загрузку в Binary Mode.
c) Если вручную вынести, прочитайте как arraybuffer ()

Код: Выделить всё

const res = await fetch('/media/markers/baby121/baby121.mind', { cache: 'no-cache' });
const buf = await res.arrayBuffer();         // ✅ not res.text()
const blob = new Blob([buf], { type: 'application/octet-stream' });
const url  = URL.createObjectURL(blob);
// Use `url` in MindAR config
d) Убедитесь, что цель AR существует перед отслеживанием
html скелет JS Diming Guard

Код: Выделить всё

const sceneEl = document.querySelector('a-scene');
sceneEl.addEventListener('loaded', () => {
const target = document.querySelector('#ar-target');
if (!target) {
console.warn('AR target element not found');
// Optionally create/append the target here
}
});
e) Маркер повторного экспорта, если повторный
Если у In -disk .mind уже есть неправильный размер, регенерируйте его с помощью Mindar CLI/редактор и загрузите снова (двоичный режим). Избегайте редактирования его в текстовых редакторах. Я также подтвердил, что файл был правильно извлечен браузером, и что он возвращался с контентом-типом: приложение /октет-потоп. Файл .mind обнаруживается, но с несоответствующими размерами байтов (например, «полученные 88927 байтов» против «88919 полезной нагрузки»). Это приводит к DrangeError: дополнительные байты XXXX, найденные в буфере [1]. В то же время я также получаю целевой элемент AR. В результате опыт AR никогда не начинается должным образом.


Подробнее здесь: https://stackoverflow.com/questions/797 ... ed-website
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»