serve-static
来源:互联网 发布:青天白日t恤 淘宝 编辑:程序博客网 时间:2024/05/17 22:01
问题1:serve-static的setHeaders有什么用?
- var express = require('express')
- var serveStatic = require('serve-static')
- //这个中间件也可以通过express.static来引入,第二个参数同样表示的是和serve-static同样的选项
- var app = express()
- //为一些静态文件设置不同的过期时间,而这个设置通过一个函数也就是setHeaders来完成的
- //setHeaders用于设定自定义的响应头,函数签名为:fn(res, path, stat)第一个参数表示response对象,第二个表示路径,第三个表示文件的描述符
- app.use(serveStatic(__dirname + '/public', {
- maxAge: '1d',
- setHeaders: setCustomCacheControl
- }))
- app.listen(3000)
- function setCustomCacheControl(res, path) {
- //通过serve-static的mime对象的lookup方法查看文件的mime类型
- if (serveStatic.mime.lookup(path) === 'text/html') {
- // Custom Cache-Control for HTML files
- res.setHeader('Cache-Control', 'public, max-age=0')
- }
- }
问题2:如果为静态文件指定了多个目录那么我们如何设置?
- var express = require('express')
- var serveStatic = require('serve-static')
- var app = express()
- //如果为静态文件指定了多个目录那么我们如何设置
- app.use(serveStatic(__dirname + '/public-optimized'))
- app.use(serveStatic(__dirname + '/public'))
- app.listen(3000)
问题3:默认情况下访问会发送index.html,那么如何取消这种默认行为?
- var express = require('express')
- var serveStatic = require('serve-static')
- var app = express()
- //其中对于index参数来说:如果访问一个目录那么默认会发送index.html,但是我们可以把index设置为false或者我们给这个参数发送一个
- //数组(或者string),那么就会按照数组指定的顺序进行遍历,前面的优先级高于后者!
- app.use(serveStatic('public/ftp', {'index': ['default.html', 'default.htm']}))
- app.listen(3000)
问题4:如果指定静态文件没有找到,是否可以继续查找其他后缀的文件作为备用文件?
- var express = require('express')
- var serveStatic = require('serve-static')
- var app = express()
- //其中对于index参数来说:如果访问一个目录那么默认会发送index.html,但是我们可以把index设置为false或者我们给这个参数发送一个
- //数组(或者string),那么就会按照数组指定的顺序进行遍历,前面的优先级高于后者!
- app.use(serveStatic('public/ftp', {'extensions': ['html', 'htm']}))
- app.listen(3000)
Extensions如果指定了true,那么指定的文件如果没有被找到,那么就会把指定的数组中的后缀添加进去继续查找,然后返回。如:['html', 'htm'],默认是false。如果我如下指定了静态文件的目录:
- app.use(express.static(path.join(__dirname, 'public')));
- <link rel="stylesheet" href="/stylesheets/style.css">
问题5:fallthrough参数有什么用?
让有客户端错误的请求通过就像没有这个请求一样,或者也可以产生一个客户端的错误。如果把这个参数设置为true那么那些无效的客户端请求或者404请求就会简单的调用next()来触发下一个中间件,如果设置为false那么就会触发next(err)把错误消息传递给下一个中间件。一般情况下都是true,这时候我们可以把多个物理路径映射到相同的URL,当前面一个路径查询不到资源继续转换到下一个物理路径查找(这里是静态资源的查找)。如果你确定你只有一个路径来存放物理资源那么设置为false。这个中间件会处理所有的GET/POST/DELETE等请求,默认情况下为true!
0 0
- serve-static
- Express的serve-static中间件的使用之五问
- magento - Serve the following static resources from a domain that doesn't set cookies
- django1.3中的static files 如何serve自己手动放进去的images,css,js等文件,解决404错误
- 基于 Django1.10 文档的深入学习(29)——Built-in Views 之 static.serve()
- CGI - Serve a Form
- Yale CAS Serve
- 怎么学好SQL serve
- SQL Serve 分页方式
- Python socket serve
- visualsvn serve 管理
- Set up Git serve
- ionic serve返回数据处理
- sql serve存储过程
- sql serve基础
- jekyll serve 启动失败
- ionic2 serve报错
- SQL Serve大全
- 糗事百科简单爬虫
- Django UnicodeEncodeError解决
- 基于Cloudera Manager5.7配置MapReduce与HiveOnSpark压缩
- 线段树刷题指南(转载自网络)
- 适用于UWP应用开发的开源React Native插件
- serve-static
- vim 查看函数列表
- **PHP** 表单(2)-表单完成
- 2015ACM/ICPC亚洲区上海站 LCM Walk
- 中国剩余定理 不互质
- 需求分析细节总结2
- 递归和迭代的区别
- Linked List Cycle
- git reset --hard 和 git revert