6

我的 /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". 

我试图徒劳地继承静态文件处理程序:

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" )

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

4

2 回答 2

4

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

class StaticJSONFileHandler(tornado.web.StaticFileHandler):
    def get_content_type(self):
        return 'application/json'
于 2013-09-23T03:57:47.583 回答
0

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

龙卷风正在做正确的事。如果“Slide66.html”确实是一张图片,那么它应该是“Slide66.jpg”。如果它是真正的 html,那么它就不能是图像的“src”。

于 2014-10-07T13:59:33.803 回答