Skip to content

静态资源服务器

静态资源服务

express.static() 用于指定一个目录,使该目录中的所有文件都可以通过 HTTP 请求访问。

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

可以指定路由匹配:

js
app.use('/assets',express.static('static'));
  • 使用 express.static('static') 来提供 static 文件夹中的静态资源。

  • 通过 app.use('/assets', ...) 使得所有以 /assets 为前缀的路径都指向 static 文件夹中的资源。

js
my-app/
├── static/
│   ├── image.png
│   └── style.css
└── app.js

访问 http://localhost:3000/assets/image.png,将会返回 static/image.png 文件。

访问 http://localhost:3000/assets/style.css,将会返回 static/style.css 文件。

防盗链

对Referer校验可以添加防盗链功能

  1. 创建防盗链中间件
preventHotLinking.js
js
const whitelist = [
  'http://127.0.0.1:3001/',
];
const preventHotLinking = (req, res, next) => {
    const referer = req.get('Referer');
    if (referer && whitelist.includes(referer)) {
        next();
    } else {
        res.status(403).send('Forbidden');
    }
};
module.exports=preventHotLinking
  1. 注册中间件,开启静态资源服务
app.js
js
app.use(PreventHotLinking)
app.use('/assets',express.static('static'))