跳到主要内容

Tornado中静态文件是如何处理的?


参考答案:

在Tornado中,静态文件可以通过几种方式进行处理:

  1. Application对象中设置static_path参数来指定静态文件的目录。这种方式下,Tornado会自动为静态文件提供路由,使得可以通过URL访问这些文件。

例如:

app = web.Application([
    (r"/static/(.*)", tornado.web.StaticFileHandler, {"path": "static"}),
])

在这个例子中,所有以/static/开头的URL都会被映射到static目录下的文件。

  1. 使用StaticFileHandler控制类来设置路径。你可以自定义一个处理静态文件的请求处理器,然后在其中指定静态文件的路径。

例如:

class StaticFileHandler(tornado.web.StaticFileHandler):
    def initialize(self, path):
        self.root = path

app = web.Application([
    (r"/static/(.*)", StaticFileHandler, {"path": "static"}),
])

在这个例子中,我们创建了一个自定义的StaticFileHandler,然后在Application对象中使用这个处理器来处理所有以/static/开头的URL。

  1. 在HTML模板中引用静态文件时,使用{{static_url("path/to/file")}}语法。Tornado会自动将静态文件的路径转换为正确的URL。

例如:

<script src="{{static_url("js/wow.min.js")}}"></script>

在这个例子中,{{static_url("js/wow.min.js")}}会被替换为正确的静态文件URL。

以上是Tornado中处理静态文件的几种方式。需要注意的是,静态文件可以是CSS、JavaScript、图像文件等,它们被放置在服务器的某个目录中,然后由Tornado根据请求的路径来提供这些文件。