包含SVG的图像不会显示

时间:2018-03-02 16:50:14

标签: php svg http-headers

我有一个PHP脚本,可以动态生成SVG图形。该脚本采用get参数,这是一个图像文件的路径 - 就像这样:

GET http://localhost:8080/generic.php?src=<rawurlencoded path to existing img>

Content-Type: Content-type: image/svg+xml

<!-- 
     namespace attributes for svg and xlink are there 
     as well as viewBox and so on
-->
<svg>
  <!-- shortened -->
  <!-- x,y,width,height are set -->
  <image xlink:href="</path/to/existing/img.png>" />
</svg>

如果我将url(/generic.php)放入浏览器的地址栏中,图像会按预期弹出。 但是如果我在HTML中包含它:

<img src="/generic.php?src=<rawurlencoded path to existing img>" />

所有的svg东西都出现了,但不是图像。 rawurlencode<img>代码的正确方法吗?我在这里需要一些其他标题吗?

该网站目前在一个docker容器中运行,该容器启动如下:

docker run -p 8080:80 .

因此传入端口为80。

HTML输出的创建方式如下:

{%
  set url = config.theme.artwork.route ~ '?'
    ~  'src='      ~ (img == null ? '' : img.url)|url_encode
%}
<div>
  <img src="{{ url }}" />
</div>

我刚测试过:

<iframe width="100px" height="100px" src="{{ url }}"></iframe>

作品...

0 个答案:

没有答案