Google App Engine正在发送带有错误mime类型的SVG

Hum*_*ood 9 google-app-engine svg mime-types

我正在使用带有Python 2.7的Google App Engine,我正在尝试将svg文件用作精灵表.

出于某种原因,这适用于Win7和Ubuntu,但不适用于Vista或Mac(在每种情况下使用最新的Chrome和Firefox).

这里用mime-type"application/octet-stream"发送,浏览器提示下载它,而不是显示它.

我尝试在我的app.yaml中覆盖mime-type,如下所示:

- url: /img/.*\.svg
  static_dir: public/img
  mime_type: image/svg+xml

- url: /img
  static_dir: public/img
Run Code Online (Sandbox Code Playgroud)

但这并没有改变任何事情.

我还试图通过他们自己的url路由svg文件的请求

- url: /img/svg
  static_dir: public/img
  mime_type: image/svg+xml

- url: /img
  static_dir: public/img
Run Code Online (Sandbox Code Playgroud)

但这导致文件与mime-type"img/png"一起发送,因此浏览器至少会尝试显示它,但不能.

只是为了确保,我按照说明尝试了每个组合,并且还使用了header-options:

- url: /img/svg
  static_dir: public/img
  http_headers:
    mime-type: image/svg+xml
Run Code Online (Sandbox Code Playgroud)

没有成功.

有什么帮助吗?

[编辑]

经过一些更多的测试后,似乎在Ubuntu上使用本地app-launcher,它会text/html在部署时使用svg发送它application/octet-stream,无论我在app.yaml中放置什么.

有没有人有这方面的经验?我能解决这个问题的唯一方法是直接将svg代码插入到页面中,这有点糟糕.这是一个图形,我想以这种方式对待它.

[更多编辑]

最后,我把它放在yaml文件中,它似乎工作:

- url: /img/.*\.svg
  static_dir: public/img
  http_headers:
    content_type: image/svg+xml

- url: /img
  static_dir: public/img
Run Code Online (Sandbox Code Playgroud)

小智 10

尝试:

http_headers:
  content-type: image/svg+xml
Run Code Online (Sandbox Code Playgroud)