直接打开html正确,但用nodejs打开就不显示图片
写了一个html,直接打开没有问题,但是在nodejs里读取之后,在浏览器输入地址的时候,就不显示网页的图片了。。。fs.readFile("/login.html",f...
写了一个html,直接打开没有问题,但是在nodejs里读取之后,在浏览器输入地址的时候,就不显示网页的图片了。。。
fs.readFile("/login.html", function (err, html) {
if (err) throw err;
response.writeHead(200, {"Content-Type": "text/html"});
response.write(html);
response.end();
} 展开
fs.readFile("/login.html", function (err, html) {
if (err) throw err;
response.writeHead(200, {"Content-Type": "text/html"});
response.write(html);
response.end();
} 展开
2019-05-16
展开全部
原因很简单,在你的代码中
fs.readFile("/login.html",function(err,html) 这句话导致你无法读取图片。
这句话表达的含义是: 我只读取 login.html 这个文件的内容,其他文件内容我都不读取
但是你要知道login.html文件中的每个图片都是外部资源,它们不属于html的内容
比如:假设login.html中有这样一段
<img src="/image/cat.png" />
因为上面的那段代码,现在 /image/cat.png 这个路径里的图片内容你无法读取
解决办法:
先引入 http、fs、url模块(这里省略)
var server = http.createServer( function( req , res ) { //创建服务器
var filename = url.parse( request.url ).pathname //获取文件路径
fs.readFile( filename , function( err , html ) { //读取html文件以及图片
................. // 这里直接使用filename可能会出错
}) // 如果你的图片不在目录文件夹中
}).listen(8000) // 需这样写: '../'+filename
filename是一个变量,html路径以及图片路径会先后赋值给它 , 这样就保证了我们先后读取了html文件内容和图片内容
在html中 src=”/image/cat.png“ ,这里src指向的是外部资源,我们进入了一个误区:
我们以为图片也属于html的内容。其实不然,一个页面中的所有图片都不属于该页面的内容
它们是外部资源,所以我们读取一个html时,需要单独的去读取里面的图片
fs.readFile("/login.html",function(err,html) 这句话导致你无法读取图片。
这句话表达的含义是: 我只读取 login.html 这个文件的内容,其他文件内容我都不读取
但是你要知道login.html文件中的每个图片都是外部资源,它们不属于html的内容
比如:假设login.html中有这样一段
<img src="/image/cat.png" />
因为上面的那段代码,现在 /image/cat.png 这个路径里的图片内容你无法读取
解决办法:
先引入 http、fs、url模块(这里省略)
var server = http.createServer( function( req , res ) { //创建服务器
var filename = url.parse( request.url ).pathname //获取文件路径
fs.readFile( filename , function( err , html ) { //读取html文件以及图片
................. // 这里直接使用filename可能会出错
}) // 如果你的图片不在目录文件夹中
}).listen(8000) // 需这样写: '../'+filename
filename是一个变量,html路径以及图片路径会先后赋值给它 , 这样就保证了我们先后读取了html文件内容和图片内容
在html中 src=”/image/cat.png“ ,这里src指向的是外部资源,我们进入了一个误区:
我们以为图片也属于html的内容。其实不然,一个页面中的所有图片都不属于该页面的内容
它们是外部资源,所以我们读取一个html时,需要单独的去读取里面的图片
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询