更改龙卷风网站中特定静态文件的mime类型

时间:2013-03-11 15:02:40

标签: python tornado

我的/ static / dir服务器端有一堆文件,名称如下:

Slide0.html    Slide121.html  Slide143.html  Slide165.html  Slide187.html  Slide208.html  
Slide28.html   Slide4.html   Slide71.html  Slide93.html
Slide100.html  Slide122.html  Slide144.html  Slide166.html  Slide188.html  Slide209.html  

我在相同的域上获取它们并定期将它们插入到iframe中,他们只是渲染一些图像,但是浏览器出现以下错误:

Resource interpreted as Image but transferred with MIME type text/html: "http://localhost:8888/static/Slide66.html". 

我试图将staticfilehandler子类化为徒劳:

class StaticHandler(tornado.web.StaticFileHandler):

def get(self, path):
    abspath = os.path.abspath(os.path.join(self.root, path))
    mime_type, encoding = mimetypes.guess_type(abspath)
    if mime_type:
        self.set_header("Content-Type", mime_type)

    if 'Slide' in abspath:
        self.set_header('Content-Type',"image/jpg" )

但错误仍然存​​在我如何调整它?

2 个答案:

答案 0 :(得分:3)

在Tornado 3.1中,您可以继承StaticFileHandler并覆盖get_content_type()

class StaticJSONFileHandler(tornado.web.StaticFileHandler):
    def get_content_type(self):
        return 'application/json'

答案 1 :(得分:0)

问题是您的浏览器正在提取" Slide66.html"用作图像。您可能会生成具有" img"标签使用" Slide66.html"作为" src"属性。

龙卷风正在做正确的事。如果" Slide66.html"是真正的形象然后它应该是" Slide66.jpg"。如果它真的是html那么它就不能成为" src"图像。