资讯专栏INFORMATION COLUMN

Python:Tornado 第四章:Tornado网站部署:第二节:静态文件

trilever / 1290人阅读

摘要:提供了两种方式进行配置静态文件路径与服务器本地路径的关联关系。通常这些静态文件的目录与网站的代码文件有某种相对关联关系,可以通过下面这样的方法将该参数设置为相对路径此处写入映射即指定静态目录为本程序文件所在目录的子目录。

上一篇文章:Python:Tornado 第四章:Tornado网站部署:第一节:调试模式
下一篇文章:Python:Tornado 第四章:Tornado网站部署:第三节:运营期配置

静态文件下载是大多数网站必备的功能,与静态文件相关的开发工作有两类:配置静态文件路径和优化静态文件访问。

1、配置静态文件路径

配置静态文件路径的目的在于为客户端提供静态文件的可访问性。Tornado提供了两种方式进行配置静态文件URL路径与服务器本地路径的关联关系。

(1)static目录配置

在tornado.web.Application的构造函数中可以传入static_path参数,用于配置对URL路径http://mysite.com/static中文件的本地路径,比如:

import tornado


def make_app():
    return tornado.web.Application([
        #此处写入映射
    ],
        static_path="C:wwwstatic"
    )

这将使诸如http://mysite.com/static/favorite.png、http://mysite.com/static/css/main.cs这的文件的访问映射到C:wwwstatic中。

通常这些静态文件的目录与网站的代码文件有某种相对关联关系,可以通过下面这样的方法将该参数设置为相对路径:

import os
import tornado


def make_app():
    return tornado.web.Application([
        #此处写入映射
    ],
        static_path=os.path.join(os.path.dirname(__file__),"static")
    )

即指定静态目录为本程序文件所在目录的static子目录。

(2)StaticFileHandler配置

如果除了http://mysite.com/static目录还有其他存放静态文件的URL,则可以用RequestHandler的子类StaticFileHandler进行配置,比如:

def make_app():
    return tornado.web.Application([
        #此处写入映射

        #这里配置了3个StaticFileHandler
        (r"/css/(.*)",tornado.web.StaticFileHandler,{"path":"assets/css"}),
        (r"/images/png/(.*)",tornado.web.StaticFileHandler,{"path":"assets/image"}),
        (r"/js/(.*)",tornado.web.StaticFileHandler,{"path":"assets/js","default_filename":"templates/index.html"}),
    ],
        static_path=os.path.join(os.path.dirname(__file__),"static")
    )

本例中除了static_path,还用StaticFileHandler配置了另外3个静态文件目录。

所有对http://mysite.com/css/*的访问被映射到相对路径assets/css中。

对http://mysite.com/images/png/*的访问被映射到assets/images目录中。

对http://mysite.com/js/*的访问被映射到assets/js目录中;该条StaticFileHandler的参数中还被配置了default_filename参数,即当用户访问了http://mysite.com/js目录本身时,将返回templates/index.html文件。

2、优化静态文件访问

优化静态文件访问的目的在于减少静态文件的重复传送,提高网络及服务器的利用效率,通过在模板文件中用static_url方法修饰静态文件链接可以达到这个目的:





本例中的静态图像链接将被设置为类似/static/images/logo.png?v=5ad4e的形式,其中的v=5ad4e是logo.png文件内容的哈希值,当Tornado静态文件处理器发现该参数时,将通知浏览器该文件可以无限期缓存,因此避免了之后访问该文件时的反复传输。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44793.html

相关文章

  • PythonTornado 四章Tornado网站部署:第一节:调试模式

    摘要:上一篇文章第三章概念及应用第三节客户端编程下一篇文章第四章网站部署第二节静态文件之前着重讲解的编程知识点,所有之前的例子都使用最简单的启动方式运行。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及应用:第三节:客户端编程下一篇文章:Python:Tornado 第四章:Tornado网站部署:第二节:静态文件 之前着重讲解Tornado的编程知...

    desdik 评论0 收藏0
  • PythonTornado 四章Tornado网站部署:第三节:运营期配置

    摘要:上一篇文章第四章网站部署第二节静态文件后台运行一般调试过程中我们使用运行网站,方便我们在命令行中看运行状况。默认情况下,会监控子进程,并在任何程序意外终止时重生。配合实现多进程在中添加接受命令行参数可在配置文件中添加使用代理 上一篇文章:Python:Tornado 第四章:Tornado网站部署:第二节:静态文件 1、后台运行 一般调试过程中我们使用python app.py运行网...

    Donald 评论0 收藏0
  • PythonTornado 第三章:HTML5 WebSocket概念及应用:第三节:客户端编程

    摘要:上一篇文章第三章概念及应用第二节服务端编程下一篇文章第四章网站部署第一节调试模式由于是的标准之一,所以主流浏览器的客户端编程语音已经支持的客户端编程。此事件发生在收到了来自服务器的消息时。此事件发生在通信过程中有任何错误时。 上一篇文章:Python:Tornado 第三章:HTML5 WebSocket概念及应用:第二节:服务端编程下一篇文章:Python:Tornado 第四章:T...

    miguel.jiang 评论0 收藏0
  • PythonTornado 第二章:实战演练:开发Tornado网站二节:路由解析

    摘要:上一篇文章第二章实战演练开发网站第一节网站结构下一篇文章第二章实战演练开发网站第三节接入点函数向对象传递的第个参数路由映射列表的配置方式与类型,用正则字符串进行路由匹配。实例参数路径在浏览器输入页面输出其中的是正在表达式。 上一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第一节:网站结构:HelloWorld下一篇文章:Python:Tornado ...

    cppprimer 评论0 收藏0
  • PythonTornado 第二章:实战演练:开发Tornado网站:第三节:RequestHan

    摘要:上一篇文章第二章实战演练开发网站第二节路由解析下一篇文章第二章实战演练开发网站第四节输入捕捉需要子类继承并定义具体行为的函数在中被称为接入点函数上面的实例中的函数就是典型的接入点函数。 上一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第二节:路由解析下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第四节:Reque...

    Fourierr 评论0 收藏0

发表评论

0条评论

trilever

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<