Express Node.js 애플리케이션이 있습니다. 구조는 다음과 같다 :Express.js에서 response.sendfile을 사용할 때 404 오류가 발생했습니다.
myapp
+-- node_modules
+-- public
|-- htmls
|-- myhtml.html
+-- routes
|-- index.js
|-- app.js
내 app.js
은 다음과 같다 :
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
// all environments
// some stuff...
app.use(express.static(path.join(__dirname, 'public')));
app.use('/public', express.static(path.join(__dirname, 'public')));
app.get('/', routes.index);
app.get('/content/:file', routes.plainhtml);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
내 routes/index.js
은 다음과 같다 :
// Some stuff...
exports.plainhtml = function(req, res) {
res.sendfile('/public/htmls/' + req.params.file);
};
내 브라우저를 열고 다음 주소를 얻으려고 : http://localhost:3000/content/myhtml.html
및 404 오류가 발생합니다.
Express 404 Error: ENOENT, stat '/public/htmls/myhtml.html'
라우팅이 완료되고 함수가 호출됩니다. 문제는 res.sendfile
을 사용하려고 할 때입니다. 어떤 주소가 거기를 통과해야합니까 ???
어떻게해야합니까?
'public/htmls /'을 사용해 보셨습니까? – mak
작동합니다 ...하지만 public/public을 사용하는 app.js에 규칙을 추가했습니다 ... mak은 Expression/Node.js에서 라우팅이 수행되는 방법을 설명하는 답변을 게시 하시겠습니까? 그리고 여기 누가 길 찾기를 처리하고 있습니까? 노드, js 또는 익스프레스? 감사합니다 – Andry