因为SVG-Edit是一个如此独特且吸引人的程序,所以多年来我一直在寻找这个问题的答案,但是变得干dry了。
经过一番艰苦的努力,我能够通过安装Windows IIS,然后设置Web服务器等使它正常工作。但是,这远非理想。
是否有某些原因不能(或不应该)以完全独立/离线模式运行?具体来说,我想做的是将GetHub zip文件解压缩到本地文件夹,然后在浏览器中打开“ svg-editor.html”。通常,这会产生一个空白窗口,或者(在某些以前的版本中)产生一个包含各种缺失项的窗口。
答案 0 :(得分:0)
曾经有一种竞争状况导致svgedit错误,在加载file://
URL的Chrome中很明显,现在已经在Github的master
分支中修复了。
您将无法从svg-editor-es.html
URL本地加载file://
,而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.html
或http://127.0.0.1:8000/editor/svg-editor.html
)加载svgedit ;如果您使用的是现代浏览器,则也可以使用ES6模块文件:http://localhost:8000/editor/svg-editor-es.html)-无需安装任何其他服务器。