关于fs.readFile&#;40&#;41和response.write()的问题
发布于 3年前 作者 shaman 1554 次浏览
var http = require("http");
var fs = require("fs");

http.createServer(function(req, res){
fs.readFile(__dirname + "/views/test.html", "utf8", function(err, content){
    if(!err){
        res.writeHead(200, {
            'Content-Type': 'text/html'
        });
        res.write(content);
        res.end();
    }
  })
}).listen(8080, function(){
    console.log("server started")
})

test.html

<!DOCTYPE HTML>
<html>
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script type="text/javascript" src="../static/js/data.js"></script>
 </head>

 <body>
 <h1>Hello world.</h1>
 <img src="http://news.baidu.com/resource/img/logo_news_137_46.png"  />
 </body>
</html>

现在的问题是 在我没有在head部分加≶script type="text/javascript" src="…/static/js/data.js"></script> 的时候访问页面是正常的,加了之后页面虽然可以显示 ,但是会报一个 syntax error [在此错误处中断]

<!DOCTYPE HTML> 的错误,引入的脚本运行不了。

如果要render一个页面并且有外部js文件的时候,应该怎么去读取和输出呢?

PS : 发布内容的编辑器在插入非code的时候木有过滤掉标签 ,我手动在编辑器里替换掉的大于号小于号, 这样怕是不安全哦

2 回复

‘引入脚本’也是个http请求啊,你的服务器没处理这部分逻辑当然就出错了

噢 ,了解了, 汗,我还特意引入了一个image但是地址用的百度上的网络图片,改用本地图片是显示不出来的。嗯,这下知道要做哪些处理了,多谢兄台提醒。

回到顶部