静态 svg 文件未从 spark-java 渲染

Static svg file not rendering from spark-java

我是网络编程的新手,并且 运行 遇到了一个问题,即从 spark-java 2.5 提供静态 svg 文件,如果我使用 [=61,它似乎不存在=] SimpleHTTP 网络服务器。

我的 spark-java 应用程序提供的 svg 图像文件无法在浏览器中呈现 - 而是显示缺少内容的标准图形。

我尝试过的:

  1. 如果我通过在浏览器中打开“http://localhost:4567/amcharts/images/dragIconRoundBig.svg”直接提供 svg,图像会渲染。
  2. 当通过以下 html(svg 元素的一部分)从我的 index.html 页面打开相同的图像文件时:

    <g aria-label="Zoom chart using cursor arrows" role="menuitem" 
         transform="translate(-7,3)" visibility="visible">
      <image x="0" y="0" width="35" height="35" xmlns:xlink="http://www.w3.org/1999/xlink" 
         xlink:href="http://localhost:4567/amcharts/images/dragIconRoundBig.svg"></image>
      <rect x="0.5" y="0.5" width="25" height="40" rx="0" ry="0" stroke-width="0" 
         fill="#000" stroke="#000" fill-opacity="0.005" stroke-opacity="0.005" 
         transform="translate(5,-2)"></rect>
    </g>
    

它不呈现。据我所知,没有 http 或其他错误。

  1. 如果我在不同的浏览器(试过 Chrome 和 Safari)上重复步骤 2,或者在禁用 AddBlocker 后,结果是一样的。

  2. 如果我使用 python 的内置 SimpleHTTP 网络服务器而不是 spark-java 重复步骤 2,提供相同的静态内容,一切正常。

  3. 我比较了来自以下来源的 svg 文件的响应 headers:

    spark-java:

    HTTP/1.1 200 OK
    Date: Wed, 11 May 2016 15:31:00 GMT
    Content-Encoding: gzip
    Transfer-Encoding: chunked
    Server: Jetty(9.3.6.v20151106)
    

    和python SimpleHTTP:

    Content-Length:679
    Content-type:image/svg+xml
    Date:Thu, 12 May 2016 07:46:02 GMT
    Last-Modified:Wed, 11 May 2016 13:42:27 GMT
    Server:SimpleHTTP/0.6 Python/2.7.9
    

问题可能是 spark-java 没有指定 Content-type 吗?这是因为它正在分块吗?

我真正想知道的是如何让它发挥作用?

暂时降级到 Spark 2.3。此问题已在 Github 上得到跟踪。很快我们就可以升级到 spark 2.5。

我也是同样的问题。但是 staticFiles.expireTime(ms); 呢?在 2.3 中缓存的替代方法是什么我找不到