PaperJS importSVG из локального файла

Недавно я решил проблему с холстом PaperJS, и сейчас я пытаюсь импортировать SVG с помощью функции project.importSVG ().

Я могу успешно импортировать файл с адресом http, например: https://upload.wikimedia.org/wikipedia/commons/8/84/Example.svg

Однако все загрузки локальных файлов завершаются ошибкой с кодом ошибки 0. Я думал, что добавление пути с file:// может что-то сделать, но без кубиков

Код ошибки:

Error: Could not load "file:///Users/#####/Documents/####/########/green-leaf_final.svg" (Status: 0)

Я использую следующий код javascript:

project.importSVG("file:///a/path/to/file/green-leaf_final.svg", function (item) {
  console.info(item);
});

Примечание: для локальных файлов появляется предупреждение, в котором также говорится:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at file:///a/path/to/file/green-leaf_final.svg. (Reason: CORS request not http).

Что лично кажется еще более запутанным - я не пытаюсь читать удаленный ресурс, но, возможно, префикс file:// интерпретируется таким образом?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
627
1

Ответы 1

Ответ на этот вопрос касается скорее всего веб-хостинга и веб-браузеров, чем чего-либо еще.

Хотя этот ответ может не сказать вам напрямую, почему любой файл, доступ к которому осуществляется из удаленного источника (или даже на вашем локальном компьютере), для определенных типов запросов браузера, останавливает вас от доступа к этому ресурсу, если заголовок CORS не включен в источник.

Предположительно, локальная файловая система не может предоставить эту информацию, и поэтому вы должны разместить свой файл на localhost или другом хостинге, который у вас есть для этого.

Если вы уже разрабатываете PaperJS (и, следовательно, у вас есть npm в качестве инструмента командной строки), и это звучит устрашающе, то используйте npm install http-server -g и проверьте документацию здесь, чтобы узнать о флагах, которые нужно предоставить, и о том, как запустить сервер. Для этого вы должны перейти в желаемый каталог, в котором находится ваш целевой файл, в оболочке командной строки ОС и написать http-server -o --cors.

Приведенная выше команда должна обслуживать все файлы вашего текущего каталога на localhost.

Другие вопросы по теме