tornado访问静态文件1

本文介绍了在Tornado中访问静态文件的两种方法,重点讲解了通过设置`static_path`和使用`StaticFileHandler`的第一种方式。通过配置`static_path`,Tornado知道静态文件的根目录,而`static_url`函数能自动转换文件路径。若要避免每次手动修改路径,可以使用`StaticFileHandler`简化静态文件的访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tornado访问静态文件总的来说有两种方法:

第一种, 如果你想让tornado自己来管理静态文件, 那么就要要在application里设置static_path的值, 请求的时候, 要是/static/....

第二种, 使用nginx服务器的话, 那么你就告诉nginx静态文件在哪里, 让nginx服务器来帮助你管理


今天简单说一下第一种.

首先, 我们要在application设置static_path, 这样就等于告诉了tornado, 我们的静态文件去哪里找. 也就是把静态文件的根目录告诉了tornado. 这个时候, 假设我们的静态文件放在static目录下.

第二步, 你要在请求的时候使用/static/这个前缀. 比如 /static/img/test.png , 也就是test.png文件是放在/static/img下的. 

这里有个简单步骤, 我们的tornado模板里的命名空间有一个static_url的函数, 这个函数会自动的把文件路径转为static目录下的. 

{{ static_url('img/test.png') }}

这里的static_url生成的前缀是可以设置的. 也在application的settings里static_url_prefix, 默认是"/static/"


一般来讲前两步骤基本就解决我们的静态文件访问内容了.但是如果你是和前端协助的话, 这样每一次都要改路径. 都要硬编码在html文件中, 或者加上{{static_url('')}}.

这样很烦, 也很容易出错.

这个时候, 我们就要使用tornado的一个预定义的handler--------tornado.web.StaticFileHandler, 这个handler能够极大的方便我们访问到我们的静态文件. 

只要在路由里这么写.

    #静态文件
    URLSpec(r"/static/(.*)", StaticFileHandler, {"path": config.STATIC_PATH}),
    URLSpec(r"/css/(.*)", StaticFileHandler, {"path": config.CSS_URL}),
    URLSpec(r"/js/(.*)", StaticFileHandler, {"path": config.JS_URL}),
    URLSpec(r"/img/(.*)", StaticFileHandler, {"path": config.IMG_URL}),
这里的

    config.STATIC_PATH = "/static"
    config.CSS_URL = "/static/css"
    config.JS_UR = "/static/js"
    config.IMG_URL = "/static/img"
是你的自己设定的目录, 
这样每一次访问/css/....这样的资源的时候, 都会定向到/static/css这个路径下寻找.

这样你前端拿过来的代码都不用修改了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值