2014-07-15 59 views
3

我一直在嘗試使用龍捲風Web服務器然而爲靜態文件,當我運行服務器,我得到的靜態文件404錯誤:404 GET(欲以龍捲風服務器爲靜態文件):

[I 140715 17:16:50 wsgi:358] 200 GET /myapp/index/ (127.0.0.1) 99.01ms 
[W 140715 17:16:50 wsgi:358] 404 GET /static/logo_small_white.png (127.0.0.1) 5.68ms 
[I 140715 17:17:04 wsgi:358] 200 GET /myapp/index/ (127.0.0.1) 6.02ms 
[W 140715 17:17:05 wsgi:358] 404 GET /static/logo_small_white.png (127.0.0.1) 5.05ms 

這是我使用啓動服務器的代碼塊:

#!/usr/bin/env python 

# Run this with 
# PYTHONPATH=. DJANGO_SETTINGS_MODULE=testsite.settings testsite/tornado_main.py 
# Serves by default at 
# http://localhost:8080/hello-tornado and 
# http://localhost:8080/hello-django 

from tornado.options import options, define, parse_command_line 
import django.core.handlers.wsgi 
import tornado.httpserver 
import tornado.ioloop 
import tornado.web 
import tornado.wsgi 
import os 

define('port', type=int, default=8080) 

class HelloHandler(tornado.web.RequestHandler): 
    def get(self): 
    self.write('Hello from tornado') 

def main(): 
    settings = { 
    "static_path": os.path.join(os.path.dirname(__file__), "static"), 
    } 
    parse_command_line() 
    wsgi_app = tornado.wsgi.WSGIContainer(
    django.core.handlers.wsgi.WSGIHandler()) 
    tornado_app = tornado.web.Application(
    [ 
     ('/hello-tornado', HelloHandler), 
     ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)), 
     (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': "/home/me/Downloads/javaAutoGraderBuilding/django-tornado-demo-master/testsite/static"}), 
     ]) 
    server = tornado.httpserver.HTTPServer(tornado_app) 
    server.listen(options.port) 
    tornado.ioloop.IOLoop.instance().start() 

if __name__ == '__main__': 
    main() 

我試圖添加一個處理靜態文件,但我不斷收到404錯誤。感謝任何解決方案。

回答

5

第一個匹配的處理器使用,在這種情況下是FallbackHandler(相匹配的一切:".*"移動此向/static/(.*)規則後

+0

這是一個偉大的答案,但如此簡單的TY – Eddie

+0

我想要!也知道我怎麼能夠將這個可執行文件作爲後臺任務運行,而不僅僅是執行_PYTHONPATH =。DJANGO_SETTINGS_MODULE = testsite.settings testsite/tornado_main.py_謝謝! – Eddie