Flask缓存静态文件的具体方法
大家好,今天才发现很多学习Flask的小伙伴都有这么一个问题,清理缓存好麻烦啊,今天就教大家怎么解决。
大家在使用Flask静态文件的时候,每次更新,发现CSS或是Js或者其他的文件不会更新。
这是因为浏览器的缓存问题。
普遍大家是这几步解决办法。
·清理浏览器缓存;
·设置浏览器不缓存;
·也有以下这么写的:
@app.context_processor def override_url_for(): return dict(url_for=dated_url_for) def dated_url_for(endpoint, **values): if endpoint == 'static': filename = values.get('filename', None) if filename: file_path = os.path.join(app.root_path, endpoint, filename) values['q'] = int(os.stat(file_path).st_mtime) return url_for(endpoint, **values)
如果是我,我不会这么做,效率很低。
这是 Flask的 config 的源码,里面可以看到,有设置缓存最大时间
SEND_FILE_MAX_AGE_DEFAULT 可以看到,它是一个 temedelta 的值
我们去更改配置。
第2行: 我们引入了datetime的timedelta对象
第6行: 我们配置缓存最大时间
这样就解决了缓存问题,不用去写多余的代码,不用去清理浏览器的缓存。
内容扩展:
flask修改静态资源后缓存文件不能及时更改问题解决
加上一句话。下图圈起来的,表示只缓存一秒,相当于不缓存了。
以上就是Flask缓存静态文件的具体方法的详细内容,更多关于Flask如何缓存静态文件的资料请关注我们其它相关文章!
相关推荐
-
如何解决flask修改静态资源后缓存文件不能及时更改问题
run.py from flask import url_for @app.context_processor # 上下文渲染器,给所有html添加渲染参数 def inject_url(): data = { "url_for": dated_url_for, } return data def dated_url_for(endpoint, **values): filename = None if endpoint == 'static': filename = values.g
-
Flask缓存静态文件的具体方法
大家好,今天才发现很多学习Flask的小伙伴都有这么一个问题,清理缓存好麻烦啊,今天就教大家怎么解决. 大家在使用Flask静态文件的时候,每次更新,发现CSS或是Js或者其他的文件不会更新. 这是因为浏览器的缓存问题. 普遍大家是这几步解决办法. ·清理浏览器缓存: ·设置浏览器不缓存: ·也有以下这么写的: @app.context_processor def override_url_for(): return dict(url_for=dated_url_for) def dat
-
python flask中静态文件的管理方法
Web应用中大多会提供静态文件服务以便给用户更好的访问体验. 静态文件主要包含CSS样式文件,js脚本,图片和字体等. Flask也支持静态文件访问的,默认情况下只需在项目根目录下,创建名为static的目录,在应用中使用'/static'开头的路径就可以访问了.但是为了获得更好的处理能力,推荐使用Nginx 或者其他服务器管理静态文件. 不要直接在模板中写死静态文件路径,应该使用url_for生成路径. 例如: url_for('static',filename='style.css') 生成
-
禁止IIS缓存静态文件的方法(png,js,html等)
禁止IIS缓存静态文件(png,js,html等)背景:IIS为了提高性能,默认情况下会对静态文件js,html,gif,png等做内部缓存,这个缓存是在服务器iis进程的内存中的.IIS这么做在很大程度上可以提高静态文件的访问性能,在正常情况下只要静态文件更新了IIS也会更新缓存.但是如果更新的静态文件很多就有可能出现缓存不更新的情况. 弯路:我遇到这样一个场景,服务器循环更新上万张股票行情图片,IIS也会对图片进行缓存,由于更新的频率很高,文件很多,就出现了IIS缓存文件超过几十分钟都无法更
-
python2.7的flask框架之引用js&css等静态文件的实现方法
动态 web 应用也会需要静态文件,通常是 CSS 和 JavaScript 文件.理想状况下, 我们已经配置好 Web 服务器来提供静态文件,但是在开发中,Flask 也可以做到. 只要在我们的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问.我们要给静态文件生成 URL ,需要使用特殊的 'static' 端点名: url_for('static', filename='style.css') 这个css文件应该存储在文件系统上的 stat
-
IIS7、iis7.5中禁止缓存单个静态文件的配置方法
IIS7中,想将一个经常修改的静态文件设置为不可缓存,在IIS配置界面里怎么也找不到... 一番google之后在stackoverflow里边发现了这样一段回答,最终解决了问题: 一.单个文件的禁止缓存的方法 just stumbled across this question; you can use the following to disable the cache on a specific file: 偶尔看到这个问题,你可以通过下面的方法来对单个文件进行禁止缓存 <configur
-
使用nginx缓存服务器上静态文件的设置方法
一.nginx缓存的优点 如图所示,nginx缓存,可以在一定程度上,减少源服务器的处理请求压力. 因为静态文件(比如css,js, 图片)中,很多都是不经常更新的.nginx使用proxy_cache将用户的请求缓存到本地一个目录.下一个相同请求可以直接调取缓存文件,就不用去请求服务器了. 毕竟,IO密集型服务的处理是nginx的强项. 二.如何进行设置 先上个栗子: http{ proxy_connect_timeout 10; proxy_read_timeout 180; proxy_s
-
php生成静态文件的多种方法分享
第一种:将php动态页面内容生成静态 复制代码 代码如下: ob_start();#开启服务器缓存 include_once 'Index.php'; $ctx=ob_get_contents();#获取缓存 ob_end_clean();#清空缓存 $fh=fopen("index.html","w+"); fwrite($fh,$ctx);#写入html,生成html fclose($fh); /* 1.Flush:刷新缓冲区的内容,输出. 函数格式:flush
-
如何在nginx中配置缓存静态文件
这篇教程说明你应该怎样配置 nginx.设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片. CSS 和 Javascript 文件)设置一个时间,这样用户的浏览器就会缓存这些文件.这样能节省带宽,并且在访问你的网站时会显得更快些(如果用户第二次访问你的网站,将会使用浏览器缓存中的静态文件). 1.准备事项 我想你需要一个正常工作的 nginx 软件,就像这篇教程里展示的:在Ubuntu 16.04 LTS 上安装 Nginx,PHP 7
-
ASP.NET Core静态文件的使用方法
前言 静态文件(HTML,CSS,图片和Javascript之类的资源)会被ASP.NET Core应用直接提供给客户端. 静态文件通常位于网站根目录(web root) <content-root>/wwwroot文件夹下.通常会把项目的当前目录设置为Content root,这样项目的web root就可以在开发阶段被明确. public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.Cre
-
用Node提供静态文件服务的方法
前言 对于一个web应用,提供静态文件(CSS.JavaScript.图片)服务常常是必须的.本文将介绍如何做一个自己的静态文件服务器. 创建一个静态文件服务器 每个静态文件服务器都有个根目录,也就是提供文件服务的基础目录.所以我们要在即将创建的服务器上定义一个root变量,它将作为我们这个静态文件服务器的根目录: var http = require('http') var join = require('path').join var fs = require('fs') var root
随机推荐
- SQL语句练习实例之三——平均销售等待时间
- Spring jdbc中数据库操作对象化模型的实例详解
- Bootstrap select实现下拉框多选效果
- C++类模板与模板类深入详解
- SpringBoot+Shiro学习之密码加密和登录失败次数限制示例
- 浅谈iOS关于头文件的导入问题
- Bootstrap提示框效果的实例代码
- ASP转换格林威治时间函数DateDiff()应用
- JavaScript学习笔记之定时器
- mysql 创建root用户和普通用户及修改删除功能
- Windows下MySQL服务无法停止和删除的解决办法
- php中简单的对称加密算法实现
- ajax设置async校验用户名是否存在的实现方法
- Jquery实现的角色左右选择特效
- 基于jQuery实现的单行公告活动轮播效果
- jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
- PHP中的use关键字概述
- Actionscript 3.0 鼠标事件
- Android用过TextView实现跑马灯效果的示例
- Android自定义圆角ImageView