主题
静态资源服务
在 Web 应用中,静态资源如图片、CSS、JavaScript 文件等是必不可少的内容。Express 内置了静态资源服务中间件,方便快速地托管这些文件。
使用 express.static 中间件
Express 提供了 express.static
中间件,用于指定静态资源目录,自动响应对应路径的资源请求。
例子
假设项目中有一个 public
文件夹存放静态文件:
text
/public
├── css
│ └── style.css
├── js
│ └── app.js
└── images
└── logo.png
在应用中配置:
js
const express = require('express');
const app = express();
app.use(express.static('public'));
app.listen(3000, () => {
console.log('服务器启动,监听端口 3000');
});
此时,浏览器访问 http://localhost:3000/css/style.css
即可获取对应文件。
自定义静态资源路径
可以通过指定虚拟路径前缀,区分静态资源访问路径:
js
app.use('/static', express.static('public'));
访问路径变为:
http://localhost:3000/static/css/style.css
缓存控制
express.static
支持配置缓存控制,提升性能:
js
app.use(express.static('public', {
maxAge: '1d' // 缓存时间为一天
}));
其他注意事项
- 静态资源文件放在项目外部时,可以使用绝对路径:
js
app.use(express.static(path.join(__dirname, 'public')));
- 确保静态目录不包含敏感文件。
- 静态资源请求默认是 GET 请求。
总结
Express 静态资源服务简单高效,结合缓存策略可以显著提升网站访问速度和用户体验。