Python Tornado中的多个静态目录

3 投票
3 回答
2808 浏览
提问于 2025-04-16 05:27

我有一个这样的文件夹结构:

root/
  js/
  css/
  libs/
  index.html

我想通过Tornado这个框架,把js、css和libs这些文件夹当作静态文件夹来提供服务,但我只找到了一种方法来提供其中一个文件夹的服务。请问这样可以做到吗?

3 个回答

3

正如Schildmeijer在Tornado网站上提到的,我建议使用Nginx来提供静态文件。早早设置好这个配置非常方便,也很简单。这还可以为你将来带来一些其他的好处:

  • 可以用Nginx来进行负载均衡
  • 可以用Nginx来处理SSL安全连接
4

请查看 这个链接

你可以通过设置处理程序来为不同的资源指定静态路径,像这样做(同时在应用程序中去掉 static_path 的设置):

handlers = [
            (r'/favicon.ico', tornado.web.StaticFileHandler, {'path':  favicon_path}),
            (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': static_path}),
            (r'/', WebHandler)
]
3

不,这个是不可能的。

当然,你可以创建一个新的文件夹,叫做父文件夹,然后把 js、css 和库文件放在这个文件夹里,然后指定这个父文件夹作为“静态文件路径”。

注意:“在生产环境中,你可能希望从一个更优化的静态文件服务器提供静态文件,比如 nginx。”

撰写回答