我想分离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/

10-12 12:53
查看更多