2013-03-11 2 views
3

У меня есть куча файлов в моем/статическом/реже серверного с такими именами, как:изменить тип пантомимы отдельных статических файлов в смерче вебе

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

но ошибка сохраняется, как я могу ее отрегулировать?

+1

какая версия торнадо вы используете? также, возможно, не вызывайте set_header («Content-Type») дважды? – CrackerJack9

ответ

2

В Tornado 3.1 вы можете подкласса StaticFileHandler и переопределить get_content_type().

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

Проблема заключается в том, что ваш браузер выбирает «Slide66.html» для использования в качестве изображения. Вероятно, вы создаете HTML, который имеет тег «img», используя «Slide66.html» в качестве атрибута «src».

Торнадо делает правильно. Если «Slide66.html» - это действительно образ, то он должен быть «Slide66.jpg». Если это действительно html, то это не может быть «src» изображения.