如果想要在输入url后直接访问服务端的静态文件,比如css、js、文件等,就需要知道这些静态文件的定位,在express框架中express.static中间件函数可以帮助我们实现。
Staic是express内置中间件函数,服务于静态文件,基于静态服务。Staic函数封装在serve-static模块当中,serve-static模块抛出的serveStatic就是static方法。
上面注释说明了方法的作用,大概是说该中间件函数为给定根目录的文件提供服务,要服务的文件将通过将req.url与提供的根目录相结合来确定。当找不到文件时,此模块将改为调用next()以转到下一个中间件。废话不多说,实际操作一下:
在浏览器地址栏输入:8888/public/images/111.jpg发现可以访问到服务端静态图片。
中间件函数要服务的文件将通过将req.url与提供的根目录相结合来确定,也就是说:8888/访问的就是中间件指定的目录。上图中:8888/对应的是项目的根目录,所以在:8888/后面加上public/images/111.jpg就可以访问到静态图片了。
如果要使用多个静态资源目录,请多次调用express.static中间件函数,Express以您使用express.static中间件函数设置静态目录的顺序来查找文件。要为express.static函数提供的文件创建虚拟路径前缀(路径并不实际存在于文件系统中,请为静态目录指定安装路径。
其中,/images和/files是指定的虚拟目录,在服务端中实际是不存在的。