![](/img/trans.png)
[英]html markup: multiple/repeating html,head, body tags, etc. - consequences
[英]Symfony - Return svg markup without html or body tags
美好的一天社区,
我现在对 symfony controller 有点问题。 我想动态创建一个 svg 并在我的网页上仅显示 svg 的标记。
像这样:
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="40"><rect x="0" y="0" width="40" height="40" style="fill: #0000FF" /></svg>
但是当我尝试返回我的 svg 时,我总是在响应中得到 html 和正文标签:
<!--?xml version="1.0" encoding="utf-8"?--><html><head></head><body><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="40"><rect x="0" y="0" width="40" height="40" style="fill: #0000FF"></rect></svg></body></html>
在我的 Controller 中,我通过以下包生成 svg: https://github.com/meyfa/php-svg
$image = new SVG(40,40);
$doc = $image->getDocument();
$square = new SVGRect(0, 0, 40,40);
$square->setStyle('fill', '#0000FF');
$doc->addChild($square);
return new Response($image->toXMLString());
我的目标是只在页面上显示 svg 以便我可以在另一个页面上使用生成的图像,如下所示:
<img src="https://mypage/mygeneratedsvg">
有人对我有任何想法或意见吗?
在发布问题后,我得出了结论。 就是这么简单。。
我必须像这样在标题中定义 Content-Type:
return new Response($image->toXMLString(), 200, ['Content-Type' => 'image/svg+xml']);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.