【问题标题】:Google App Engine is sending SVG with wrong mime-typeGoogle App Engine 正在发送具有错误 mime 类型的 SVG
【发布时间】:2014-07-29 04:35:32
【问题描述】:

我正在使用带有 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

但这并没有改变什么。

我还尝试像这样通过自己的 url 路由对 svg 文件的请求

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

- url: /img
  static_dir: public/img

但这会导致文件以 mime 类型“img/png”发送,因此浏览器至少会尝试显示它,但不能。

只是为了确保,我按照说明尝试了每种组合以及标题选项:

- url: /img/svg
  static_dir: public/img
  http_headers:
    mime-type: image/svg+xml

没有成功。

有什么帮助吗?

[编辑]

经过更多测试,似乎在使用本地应用程序启动器的 Ubuntu 上,它以 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

【问题讨论】:

  • 请使用包含答案的完整 .yaml 代码将编辑发布到您的 OP?

标签: google-app-engine svg mime-types


【解决方案1】:

试试:

http_headers:
  content-type: image/svg+xml

【讨论】:

  • 谢谢,这似乎工作正常!知道为什么它在不同的客户端计算机上表现如此不同吗?
  • 使用不正确的 MIME 类型提供响应总是会产生不可预知的结果。一些客户会尝试猜测;他们对猜测的工作方式都有不同的规则,有些可能依赖操作系统支持来进行猜测和/或显示。更糟糕的是 AppEngine 无法猜出正确的 MIME 类型;在这种情况下,这似乎很简单。
  • 为什么.yaml 文件中的mime_type 标志不起作用?在他们的文档中:cloud.google.com/appengine/docs/python/config/… 似乎是一个 GAE 错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 2020-04-27
  • 2015-02-25
  • 2017-12-07
  • 1970-01-01
相关资源
最近更新 更多