客户端向服务端发送的各类请求中,其中可以包含各类文件,比如HTML代码页、CSS样式文件或者图片文件。想要客户端渲染出正确的效果,就需要针对每个不同的资源请求,正确的返回相关的内容。
通常的解决思路是通过路由方式引入
- 剖析request请求地址。分割出文件名,后缀名。
- 根据后缀补全相关文件在文件系统中的全路径。
- 根据全路径读取内容,返回给客户端。
静态托管方式引入,使用app.use()解决
通过express对象的app.use(express.static(folder_path))方法,可以更好的处理静态资源。方法的参数指定为相关的静态资源文件夹路径即可。
例如,通过如下代码就可以将 public 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了:
app.use(express.static('public'))
现在,你就可以访问 public 目录中的所有文件了:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html
如果要使用多个静态资源目录,请多次调用 express.static 中间件函数:
app.use(express.static('public'))
app.use(express.static('files'))