//加载静态文件,结果加载css,js的时候会报错
function static_server_file(file,res){
var rs = fs.createReadStream(file);
var contents;
console.log(content_type(file));
res.writeHead(200,{'Content-Type':content_type(file)});
rs.on('readable',function(){
var d = rs.read();
var str;
if(d){
if(typeof d == 'string'){
str = d;
}else if( typeof d == 'object' && d instanceof Buffer){
str = d.toString('utf-8');
}
}
if(str){
if(!contents){
contents = str;
}else{
contents += str;
}
}
//res.write(contents);
});
rs.on('end',function(){
//console.log(contents);
res.write(contents);
res.end();
});
rs.on('error',function(e){
res.writeHead(404,{'Content-Type':'appalication/json'});
var out = {
error:'not found',
message:file+'not found'
};
res.end(JSON.toString(out));
return;
})
}
//根据文件确定mine类型
function content_type(file){
var extname = path.extname(file);
var type;
switch(extname.toLowerCase()){
case '.html':
type = 'text/html';
break;
case '.js':
type = 'text/javascript';
break;
case '.css':
type = 'text/css';
break;
case '.jpg':
type = 'image/jpg';
break;
default:type = 'text/plain';
}
return type;
}
//这是修改后的版本,加载css,js的时候没有问题,这是为什么
function static_server_file(file,res){
fs.readFile(file,function(err,data){
if(err){
if(err && err.error == 'no_such_album'){
send_failure(res,404,err);
}else{
send_failure(res,500,err);
}
}
res.writeHead(200,{'Content-Type':content_type(file)});
res.write(data);
res.end();
});
}
你的这个 函数 static_server_file 里面处理这么复杂干什么呢?
全选复制放进笔记function static_server_file(file,res){
var rs = fs.createReadStream(file);
var contents;
console.log(content_type(file));
rs.on('readable',function(){
res.writeHead(200,{'Content-Type':content_type(file)});
rs.pipe(res);
});
rs.on('error',function(e){
res.writeHead(404,{'Content-Type':'appalication/json'});
var out = {
error:'not found',
message:file+'not found'
};
res.end(JSON.toString(out));
return;
})
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。