【问题标题】:Can SVG-Edit be made to work in a standalone/offline context?SVG-Edit 可以在独立/离线环境中工作吗?
【发布时间】:2019-07-04 15:42:28
【问题描述】:

由于 SVG-Edit 是一个如此独特和吸引人的程序,我多年来一直在寻找这个问题的答案,但都没有找到答案。

经过一番艰苦的努力,我能够通过安装 Windows IIS,然后设置 Web 服务器等来让它工作。然而,这远非理想。

它不会(或不应该)在完全独立/离线模式下运行是否有某些原因?具体来说,我想做的是将 GetHub zip 文件解压缩到本地文件夹,然后在浏览器中打开“svg-editor.html”。通常,这会产生一个空白窗口,或者(在某些以前的版本中)一个带有各种缺失项的窗口。

【问题讨论】:

  • 非常感谢您提供信息丰富的回复。我确认运行最新版本可以纠正基本问题,这可能是我在基本级别使用该工具所需的全部内容。您对 service worker 和 node.js 的建议很有趣,我一定会检查它们(以我对网络的有限知识等为模)。

标签: svg local offline svg-edit


【解决方案1】:

有一个竞争条件导致 svgedit 出错,在 Chrome 中加载 file:// URL 时很明显,现在已在 Github 上的 master 分支中修复。

您将无法从 file:// URL 本地加载 svg-editor-es.html --svg-editor-es.html 是依赖 ES6 模块加载其文件的原始源,但由于不允许在本地加载它们,因此存在问题,导致原始错误显示在控制台中),但 svg-editor.html 文件(这是使用 svgedit 的向后兼容方式)似乎在修复后现在可以工作 - 至少对于一些基本功能,如制作图纸。

但是,由于与file:// URL 的有限权限相关的限制(例如,加载某些图像),某些功能可能无法运行。 (我似乎记得以前浏览器阻止其目录或子目录之外的文件在父目录中加载文件,但现在似乎不适用此限制,尽管我看到一些关于 Ajax 无法加载某些图像的警告svgedit 尝试加载。)

因此,即使使用了上述最近的修复程序,也可能无法完全脱机工作,除非您选择禁用浏览器上的安全限制,这是不应该轻易做的事情。但它似乎至少适用于一些基本图纸。

虽然我认为这可能会解决您的直接问题,即为什么它在没有服务器的情况下无法工作,但还有另一种“离线”工作的方法,虽然它需要一个服务器来最初提供文件,但可能允许 svgedit存储应用程序文件,以便下次您在浏览器中访问该 URL 时完全脱机工作 - 并且不会遇到浏览器安全限制问题。现在的浏览器即使在从服务器提供服务时也可以离线工作(由称为“服务工作者”的东西完成——请参阅https://caniuse.com/#feat=serviceworkers 了解支持此功能的浏览器)。

然而,服务人员并不是那么容易拼凑起来的,尽管您应该能够通过订阅https://github.com/SVG-Edit/svgedit/issues/243 的问题来跟踪这方面的任何未来进展(因为它已经是一个请求的功能),但目前没有人承诺实施这一点。希望有人会受到启发来实现这一点。

顺便说一句,如果您使用“npm”(安装 Node 后可用的工具)安装 svgedit,svgedit 有一个启动脚本,您可以在 svgedit 文件夹中使用npm start 从命令行调用该脚本,这将为您运行一个本地(节点)服务器,特别是一个简单的静态文件服务器,它只允许您从http URL(即http://localhost:8000/editor/svg-editor.htmlhttp://127.0.0.1:8000/editor/svg-editor.html;您还可以使用 ES6 模块如果您使用的是现代浏览器,请提交文件:http://localhost:8000/editor/svg-editor-es.html)--无需安装任何其他服务器。

【讨论】:

    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 2012-06-20
    • 2016-03-22
    • 2015-05-11
    • 2017-08-11
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    相关资源
    最近更新 更多