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

问题描述 投票:0回答:2

我正在使用 Google App Engine 和 Python 2.7,并且我尝试使用 svg 文件作为 sprite 表。

由于某种原因,这在 Win7 和 Ubuntu 上运行良好,但在 Vista 或 Mac 上则不然(在每种情况下都使用最新的 Chrome 和 Firefox)。

这里它是用 mime 类型“application/octet-stream”发送的,浏览器会提示下载它,而不是显示它。

我尝试像这样覆盖 app.yaml 中的 mime 类型:

- 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 上使用本地应用程序启动器,它将 svg 发送为

text/html
,部署时它使用
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
google-app-engine svg mime-types
2个回答
10
投票

尝试:

http_headers:
  content-type: image/svg+xml

0
投票

这有效。 我的 favicon.svg 在公共文件夹中。 然后我在我的index.html中列出了这样的:

<link rel="icon" type="image/svg+xml" href="./favicon.svg"> 

然后我将其添加到 yaml 文件中以专门识别 svg MIME 类型:

- url: /img/.*\.svg
    static_files: dist/favicon.svg
    upload: dist/favicon\.svg
    secure: always
    http_headers:
      Content-Type: image/svg+xml
© www.soinside.com 2019 - 2024. All rights reserved.