Было состояние гонки, которое приводило к ошибке 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) - без необходимости устанавливать какой-либо другой сервер.