利用D3-Node在服务器端做好了图,为SVG格式, 已经写成SVG 标签, 如何在views的ejs文件中加入这个标签,实现客户端在浏览器上看到SVG图件。
采用办法是将SVG标签串存在变量svgChart下,放到ejs文件相应位置,<%= svgChart %>
, 通过res.render("index",{svgChart: svgString})
方式,传给客户端。
问题是,这样传无法实现图件显示, 仅仅显示svg串的文本内容如下:
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="400"><defs><style type="text/css"><![CDATA[ .axis{font: 10px sans-serif;} .axis path,.axis line{fill: none;stroke: #000;shape-rendering: crispEdges;} .x.axis path{display: none;} ]]></style></defs><g transform="translate(40,20)"><path d="M20,32.4L20.430000000000003,32.4L20.86,32.4L21.290000000000003,32.4L21.720000000000002,32.4L22.150000000000002,32.4L22.580000000000002,32.4L23.01,32.4L23.44,32.4L23.87,32.4L24.299999999999997,32.4L24.73,32.4L25.16,32.4L25.590000000000003,32.4L26.02,32.4L26.450000000000003,32.4L26.88,32.4L27.310000000000002,32.4L27.740000000000002,32.4L28.17,32.4L28.6,32.4L29.03,32.4L29.46,32.4L29.89,32.4L30.32,32.4L30.75,32.4L31.18,32.4L31.61,32.4L32.04,32.4L32.............
而不是图件。
如果将这个串直接硬拷贝到ejs相应位置,图件能很好显示。
请教高手,这个问题的解决思路。服务器端生成的SVG图件怎么能较好的动态传给客户端,因为需要客户端交互修改svg中的数据,感觉不能用文件形式实现。
楼主问题解决了吗,今天自己在使用ejs渲染的时候就出现了这个问题,误打误撞解决了,
https://blog.csdn.net/qq_3501...
参照<%-为非转意输出,如果使用<%=,转意输出,在渲染页面时在控制台可以看到原文的 "" 会变为 """",使用非转意则不会,然后就能渲染出来了