我一直在努力使svg元素在ascx页面中工作。我想使用SVG渲染游戏地图,因为它反应灵敏并且可以向其中添加动画。
我正在运行VS 2017,Windows 7,IIS Localhost,HTML5
该svg是通过将我的Game Map PSD文件(具有多个图层)导出为SVG从当前版本的Photoshop生成的。
生成的svg文件可以在浏览器中打开,没问题。 SVG文件包含一些datauri(data:img / png; base64),其中许多都是巨大的。
当我将相同的svg标记放置在ascx页面中并尝试查看它时,该页面将挂起。
但是我不明白为什么浏览器可以从文件管理器和IIS内容浏览器中查看这些svg文件,但是我的asp.net 4.5应用程序不能。
即使我将ascx / page简化为一个svg图像元素,它仍然会挂起。
如果我用png文件替换src =元素来替换datauri,它会起作用。
我尝试使用指向指向不完整的svg文件的url更改内联数据uri,但这里没有运气。
Visual Studio / DOTNET似乎无法处理Photoshop导出到SVG所创建的大数据URI。
有时我会显示此错误:System.Web.HttpCompileException:(0):错误CS1647:表达式太长或太复杂,无法在System.Web.Compilation.AssemblyBuilder.Compile()上编译
我可以确认我具有为svg定义的模仿类型。是否需要对web.config进行任何特殊的调整?
这只是我尝试使用的svg元素之一:
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="1920" height="1920"
viewBox="0 0 1920 1920">
<image id="sand_path_element" x="121" y="74" width="601" height="1038"
xlink:href =“ data:img / png; base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAQOCAYAAADooy0yAAAA ....要在此对话框中发帖(限制为30k个字符)/>