Можно ли заставить SVG-Edit работать в автономном / автономном контексте? - PullRequest
1 голос
/ 12 марта 2019

Поскольку SVG-Edit - такая уникальная и привлекательная программа, я годами искал ответ на этот вопрос, но не смог.

После большой борьбы я смогзаставить его работать, установив Windows IIS, затем настроив веб-сервер и т. д. Однако это далеко от идеала.

Есть ли какая-то причина, по которой он не будет (или не должен) работать вполностью автономный / автономный режим?В частности, я хотел бы распаковать zip-файл GetHub в локальную папку и открыть «svg-editor.html» в браузере.В общем случае это приводит либо к пустому окну, либо (в некоторых предыдущих версиях) к окну с различными недостающими элементами.

1 Ответ

0 голосов
/ 04 июля 2019

Было состояние гонки, которое приводило к ошибке svgedit, что проявлялось в Chrome при загрузке с URL-адресами file:// и теперь исправлено в ветке master на Github.

Вы не сможете загрузить svg-editor-es.html локально с file:// URL - svg-editor-es.html является исходным источником, который использует модули ES6 для загрузки своих файлов, но проблематично, так как им не разрешено загружать локально, вызывая ошибки источника в консоли), но файл svg-editor.html (который является обратно совместимым способом использования svgedit) теперь работает после исправления - по крайней мере, для некоторых основных функций, таких как создание чертежей.

Однако некоторые функции могут быть недоступны из-за ограничений, связанных с ограниченными разрешениями для URL-адресов file://, например, загрузкой некоторых изображений. (Похоже, я вспоминал браузеры, ранее запрещавшие загрузку файлов в родительские каталоги за пределами своего каталога или дочерних каталогов, но сейчас это ограничение, похоже, не применяется, хотя я вижу некоторые предупреждения о том, что Ajax не может загружать некоторые изображения, которые svgedit пытается загрузить.)

Таким образом, даже с вышеупомянутым недавним исправлением может оказаться невозможным полноценная работа в автономном режиме, если, возможно, вы не решите отключить ограничения безопасности в своем браузере, чего не следует делать легкомысленно. Но, похоже, это работает для некоторых базовых чертежей, по крайней мере.

Хотя я полагаю, что это может ответить на ваш прямой вопрос о том, почему он не работает без сервера, существует также другой подход к работе "в автономном режиме", который, хотя для первоначального обслуживания файлов может потребоваться сервер, может позволить svgedit сохранять файлы приложения для работы в автономном режиме при следующем посещении этого URL-адреса в браузере - и не сталкиваться с проблемами с ограничениями безопасности браузера. Браузеры в настоящее время могут работать в автономном режиме, даже если они обслуживаются с сервера (это делается так называемыми «работниками сферы обслуживания» - см. https://caniuse.com/#feat=serviceworkers для браузеров, которые поддерживают это).

Служебным работникам, однако, не все так просто объединить, и хотя вы сможете отслеживать любой дальнейший прогресс в этом вопросе, подписавшись на проблему на https://github.com/SVG-Edit/svgedit/issues/243 (поскольку это уже запрошенная функция ), в настоящее время никто не обязуется осуществлять это в настоящее время. Надеемся, что кто-то будет вдохновлен для реализации этого.

Кстати, если вы устанавливаете svgedit, используя «npm» (инструмент, который становится доступным, если вы устанавливаете Node), svgedit имеет стартовый скрипт, который вы можете вызывать из командной строки с помощью npm start из папки svgedit, и это будет запускать локальный (Node) сервер для вас, в частности, простой статический файловый сервер, который просто позволит вам загружать svgedit из http URL-адресов (то есть http://localhost:8000/editor/svg-editor.html или http://127.0.0.1:8000/editor/svg-editor.html; вы также можете использовать модули ES6 файл, если вы используете современный браузер: http://localhost:8000/editor/svg-editor-es.html) - без необходимости устанавливать какой-либо другой сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...