2016-02-26 3 views
0

Мой личный сайт содержит только статические файлы. Я хочу развернуть его в Sina App Engine. Для работы приложения требуется настроить файл index.wsgi.Использование WSGI для обслуживания статических файлов

Проблема в том, что я не знаю, как совместить domain/static/index.html с самим domian. Это означает, что при вводе самого домена сервер будет отвечать на файл /static/index.html.

Я не смог найти хорошее решение Google. Может ли кто-нибудь помочь?

ответ

0

Я нашел что-то действительно полезное Serve Static Content И на основании этого я написал код Python. Задача решена!

Вот код (index.wsgi)

import os 

    MIME_TABLE = {'.txt': 'text/plain', 
      '.html': 'text/html', 
      '.css': 'text/css', 
      '.js': 'application/javascript' 
      } 

def application(environ, start_response): 

    path = environ['PATH_INFO'] 

    if path == '/': 
     path = 'static/index.html' 
    else: 
     path = 'static' + path 

    if os.path.exists(path): 
     h = open(path, 'rb') 
     content = h.read() 
     h.close() 
     headers = [('content-type', content_type(path))] 
     start_response('200 OK', headers) 
     return [content] 
    ''' else: return a 404 application ''' 

def content_type(path): 

    name, ext = os.path.splitext(path) 

    if ext in MIME_TABLE: 
     return MIME_TABLE[ext] 
    else: 
     return "application/octet-stream" 
+0

Я думаю, что ваш код уязвим для обходных атаки (например, если кто-то предоставляет 'путь =» ../../ и т.д./passwd'' - см. https://stackoverflow.com/questions/6803505/does-my-code-prevent-directory-traversal для того, как очищать входные пути –

Смежные вопросы