NodeJS之 Express框架 app.use(express.static)

寻技术 JS脚本 / Node.Js 2023年07月11日 98

参考文档:https://blog.csdn.net/u010977147/article/details/60956502

一 、设置静态文件目录

语法如下:

app.use(express.static(_dirname + '/public'));  //设置静态文件目录

注: 将静态文件目录设置为项目根目录 + ‘/public’,可以这样写

app.use(express.static(path.join(_dirname, 'public')));

运用path模版的join方法效果和前面是等价的。这里需要引用path模块。

path.join():将多个参数组合成一个 path

二、静态资源文件和动态资源文件是什么?

静态资源文件:对于不同的用户,内容都不会变化的文件。比如不管张三还是李四访问百度,他们所看到的图片、css、js文件都是一样的,我们成为静态资源文件;

动态资源文件: 对于不同用户,做出不同反应的就是动态文件,例如张三李四登陆百度,百度会分别对他们显示“张三,你好”、“李四,你好”,那么负责这些动态逻辑的文件就是动态文件了。

三、 app.use() 方法的作用

app.use : 用来给path注册中间函数的。这个path默认是“/”,也就是处理任何请求,同时注意的是他会处理path下的子路径,如果设置path为‘/hello’,那么请求路径为‘/hello/’,'/hello/nihao','/hello/bye'这样的请求都会交给中间函数处理的。

于是我们现在知道了app.use(express.static(_dirname + '/public'))是将所有请求,先交给express.static(_dirname + '/public')来处理一下。

四、express.static() 方法的作用

为了提供对静态资源文件(图片,css,js文件)的服务,请使用Express内置的中间函数express.static.

传递一个包含静态资源的目录给express.static中间件用于立即开始提供文件。 比如用以下代码来提供public目录下的图片、css文件和js文件:

app.use(express.static('public'));

 

现在可以加载public目录下的文件了:

比如: http://localhost:3000/image/jkk.png

通过多次使用 express。static中间件来添加多个静态资源目录:

app.use(express.static('public'));
app.use(express.static('file'));

Express将会按照你设置静态资源目录的顺序来查看静态资源文件。

为了给静态资源文件创建一个虚拟的文件前缀(文件系统中不存在),可以使用express.static函数指定一个虚拟的静态目录,如下:

app.use('/static', express.static('public'))

现在你可以使用‘/static’作为前缀来加载public文件夹下的文件了

比如: http:// localhost:3000/static/image/kitten.jpg

 

关闭

用微信“扫一扫”