在我的server.ts文件中的行
app.get('/example', express.static('somefolder'));
给了我404,而
app.use('/example', express.static('somefolder'));
正确地将'somefolder'中的'index.html'作为对'myhost / example'请求的响应。
根据快速文档,在GET请求的情况下,这些行为应该完全相同。为什么一个工作而另一个不工作?
答案 0 :(得分:0)
这两种方法在填充req.path
的方式上有所不同(
app.get('/example')
,它设置为/example/
app.use('/example')
,它设置为/
使用express.static()
时,这意味着在内部,静态中间件会将请求路径转换为不同的位置:
app.get('/example')
,它会查看somefolder/example/
app.use('/example')
,它会查看somefolder/
您可以通过创建somefolder/example/
并将index.html
文件复制到其中来轻松测试;当你这样做时,app.get()
路线也会起作用。