繁体   English   中英

Symfony - 返回没有 html 或正文标签的 svg 标记

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM