404 요청에 의해 잘못된 파일 요청, 예를 들어 CSS 또는 이미지가 포착되는 문제가 있습니다. 정말 404 응답을 반환하고 싶지만이 경우 404 페이지를 렌더링하지 마십시오. 과거에는 nginx를 사용하여 파일 요청을 처리 했으므로 문제가되지 않았습니다. 그러나 표현이 파일 제공을 처리 할 때 이것을 수행하는 올바른 방법은 무엇입니까? 여기Node Express 404 파일 요청의 404 페이지 요청을 구별합니다.
은 내 현재의 경로 처리는 오류 처리 로직에 의해 다음에 -
app.use(express.static(path.join(rootPath, 'public')));
app.use('/', routes);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
// respond with html page
if (req.accepts('html')) {
res.render('404', { url: req.url });
return;
}
// respond with json
if (req.accepts('json')) {
res.send({ error: 'Not found' });
return;
}
// default to plain-text. send()
res.type('txt').send('Not found');
next(err);
});
// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message + " " + req.path,
error: err
});
});
}
을 요청한 후 404 페이지를 다시 보내지 않으려는 파일 유형이라면'res.status (404) .end()'를 수행하십시오. – jfriend00
이 목적을 위해 명백하게 보이는 요청 개체의 특정 속성을 보지 못했습니다. 그러나 미들웨어가 비슷한 방식으로 작동해야한다고 생각합니다. – user3205931
'req.url'은 요청한 URL을 보여줍니다. URL 끝에있는 파일 확장자를 볼 수 있습니다. – jfriend00