我正在使用Google App Engine和Python 2.7,并且我试图将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
但这并没有改变任何事情。
我还试图通过他们自己的网址(例如
)路由svg文件的请求- url: /img/svg
static_dir: public/img
mime_type: image/svg+xml
- url: /img
static_dir: public/img
但是这导致文件与mime-type" img / png"一起发送,所以浏览器至少会尝试来显示它,但是不能
为了确保,我按照规定尝试了每个组合,并使用了标题选项:
- url: /img/svg
static_dir: public/img
http_headers:
mime-type: image/svg+xml
没有成功。
请帮忙吗?
[编辑]
经过一些更多测试后,似乎在Ubuntu上使用本地app-launcher,它将svg发送为text/html
,部署时使用application/octet-stream
,无论我在应用中放置什么。 YAML。
有人有这方面的经验吗?我能解决这个问题的唯一方法是直接将svg代码插入到页面中,这有点糟糕。它是一个图形,我想以这种方式对待它。
[更多编辑]
最后,我把它放在yaml文件中,似乎有效:
- url: /img/.*\.svg
static_dir: public/img
http_headers:
content_type: image/svg+xml
- url: /img
static_dir: public/img
答案 0 :(得分:9)
尝试:
http_headers:
content-type: image/svg+xml