簡體   English   中英

如何設置龍卷風服務器的路徑

[英]How to set path for tornado server

我正在用python龍卷風構建服務器。 我的同事已經完成了前端部分。

我做了一個非常簡單的測試,如下所示:

class IndexHandler(tornado.web.RequestHandler):
        def get(self):
            print("this is a get request from indexhandler:\n")
            print(self.request)
            self.render("frontend/index.html")

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

對於此測試,瀏覽器將顯示500: Internal Server Error 因為index.html在子目錄中包含一些js文件。
這是服務器的消息:

[I 170430 23:06:21 Web:2063] 200 GET /(108.61.177.156)2.56ms
[W 170430 23:06:22 Web:2063] 404 GET /css/reset.css(108.61.177.156)0.56ms
[W 170430 23:06:22 Web:2063] 404 GET /css/common.css(108.61.177.156)0.56ms
[W 170430 23:06:22 Web:2063] 404 GET /css/index.css(108.61.177.156)0.41ms

這意味着瀏覽器獲取了index.html但無法獲取這些css文件。

所以我在想我需要做這樣的事情:

self.render("frontend/*")

我已經嘗試過了,但是失敗了。

另外,如果我確實需要某種正則表達式來執行此操作,則我認為這非常危險,因為用戶可以從其瀏覽器發出這樣的請求:

www.mysite.com/../../someLocalFileOfServer

你讀過龍卷風的文件了嗎? 只需檢查此文檔中的靜態投放即可。 http://www.tornadoweb.org/en/stable/guide/running.html#static-files-and-aggressive-file-caching

更新資料

為什么會有危險? 假設您有一個像這樣的項目:

project
--static_dir
----test.js
----some other static files
--view
----index.html
----some other view files
--server.py

您可以設置static dir到static_dir,然后用戶將有機會獲得test.js通過URL domian/test.js 因此,用戶有權訪問的內容由您決定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM