我有一个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>
作品...