我想分离HTML的Javascript代码。
这是我当前的index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<p>Welcome</p>
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost');
</script>
</body>
</html>
我想要这样:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
<p>Welcome</p>
<script src="client.js"></script>
</body>
</html>
client.js
var io = require('socket.io');
var socket = io.connect('http://localhost');
我的服务器路由设置如下:(express + fs)
app.get('/', function(req, res) {
fs.readFile('./index.html', 'utf-8', function(error, content) {
res.writeHead(200, {"Content-Type": "text/html"});
res.write(content);
res.end();
});
});
我也必须发送client.js吗?实际上,index.html上的Javascript控制台显示“无法获取http :: localhost / client.js”。
有任何想法吗 ?非常感谢。
尼古拉斯
最佳答案
您必须为静态内容添加一个文件夹,然后将其添加到快速配置中:
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
之后,您可以删除
app.get('/')
路线关于javascript - node.js/socket.io如何分离html的javascript?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22966075/