10 Tornado - 静态文件

简介: 10 Tornado - 静态文件

现在有一个预先写好的静态页面文件 (下载静态文件资源), 我们来看下如何用tornado提供静态文件。

static_path

我们可以通过向web.Application类的构造函数传递一个名为static_path的参数来告诉Tornado从文件系统的一个特定位置提供静态文件,如:

app = tornado.web.Application(
    [(r'/', IndexHandler)],
    static_path=os.path.join(os.path.dirname(__file__), "statics"),
)

在这里,我们设置了一个当前应用目录下名为statics的子目录作为static_path的参数。现在应用将以读取statics目录下的filename.ext来响应诸如/static/filename.ext的请求,并在响应的主体中返回。

对于静态文件目录的命名,为了便于部署,建议使用static。

对于我们提供的静态文件资源,可以通过http://127.0.0.1/static/html/index.html来访问。而且在index.html中引用的静态资源文件,我们给定的路径也符合/static/…的格式,故页面可以正常浏览。

<link href="/static/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="/static/css/reset.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
<link href="/static/css/index.css" rel="stylesheet">
<script src="/static/js/jquery.min.js"></script>
<script src="/static/plugins/bootstrap/js/bootstrap.min.js"></script>

StaticFileHandler

我们再看刚刚访问页面时使用的路径http://127.0.0.1/static/html/index.html,这中url显然对用户是不友好的,访问很不方便。我们可以通过tornado.web.StaticFileHandler来自由映射静态文件与其访问路径url。

tornado.web.StaticFileHandler是tornado预置的用来提供静态资源文件的handler

import os
current_path = os.path.dirname(__file__)
app = tornado.web.Application(
    [
        (r'^/()$', StaticFileHandler, {"path":os.path.join(current_path, "statics/html"), "default_filename":"index.html"}),
        (r'^/view/(.*)$', StaticFileHandler, {"path":os.path.join(current_path, "statics/html")}),
    ],
    static_path=os.path.join(current_path, "statics"),
)
  • path 用来指明提供静态文件的根路径,并在此目录中寻找在路由中用正则表达式提取的文件名。
  • default_filename 用来指定访问路由中未指明文件名时,默认提供的文件。

现在,对于静态文件statics/html/index.html,可以通过三种方式进行访问:

目录
相关文章
|
前端开发 JavaScript Python
Django如何使用templates显示网页和静态资源
Django如何使用templates显示网页和静态资源
115 0
|
缓存 Shell API
一文带你掌握nest.js访问静态资源
一文带你掌握nest.js访问静态资源
一文带你掌握nest.js访问静态资源
|
XML 存储 JSON
14 Tornado - XSRF
14 Tornado - XSRF
39 1
|
Ubuntu 应用服务中间件 开发工具
19 Tornado - 部署Tornado
19 Tornado - 部署Tornado
89 0
|
应用服务中间件 数据库 nginx
01 Tornado - 介绍
01 Tornado - 介绍
92 0
|
前端开发 Python
07-Django-基础篇-配置文件和静态文件
07-Django-基础篇-配置文件和静态文件
|
前端开发 Android开发 开发者
WSGI 是什么,看完一定懂
WSGI 是什么,看完一定懂
187 0
|
Python
WSGI
WSGI自制脑图 WSGI的全称是 Web Server Gateway Interface,简单翻译就是 Web 服务器网关接口。具体来说,WSGI 是一个规范,定义了 Web 服务器如何与 Python 应用程序进行交互,使得使用 Python 写的 Web 应用程序可以和 Web 服务器对接起来。
87 0
WSGI
|
前端开发 JavaScript Python
Flask热更新html模板文件和静态文件
Flask热更新html模板文件和静态文件
228 0
|
缓存 开发者 Python
WSGI 服务器的介绍 | 学习笔记
快速学习 WSGI 服务器的介绍
WSGI 服务器的介绍 | 学习笔记