Javascript 节点JS服务器,无法获取index.html

Javascript 节点JS服务器,无法获取index.html,javascript,html,node.js,file,server,Javascript,Html,Node.js,File,Server,我正在用socket.io制作一个应用程序,所以现在我正在用HTML和CSS制作用户界面,一切都正常,只是当我尝试使用nav返回index.HTML时,它无法得到它。其他Nav元素之所以有效,是因为它们位于公共目录中,但是如果我将索引文件移动到公共目录,它会说它根本找不到index.html。所以,我的主要问题是,我如何让它能够找到HTML文件,而不是在公共目录中,或者让它在公共目录中找到索引文件 文件结构: index.html server.js public settings.htm

我正在用socket.io制作一个应用程序,所以现在我正在用HTML和CSS制作用户界面,一切都正常,只是当我尝试使用nav返回index.HTML时,它无法得到它。其他Nav元素之所以有效,是因为它们位于公共目录中,但是如果我将索引文件移动到公共目录,它会说它根本找不到index.html。所以,我的主要问题是,我如何让它能够找到HTML文件,而不是在公共目录中,或者让它在公共目录中找到索引文件

文件结构:

index.html
server.js
public
   settings.html
   friends.html
导航的HTML:

        <nav>
            <ul>
                <li><a href="http://localhost:5000/index.html" >Chat</a></li>
                <li><a href="http://localhost:5000/friends.html">Friends</a></li>
                <li><a href="http://localhost:5000/settings.html">Settings</a></li>
            </ul>
        </nav>
如何让它能够找到不在公共目录中的html文件

您需要:

  • 使您的
    静态
    路由在根目录而不是公共目录中查找(这不是一个好主意,因为您在那里有服务器代码)
  • 设置另一条
    静态
    路线(同上)
  • /
    编写一个显式的
    get
    处理程序,该处理程序的代码读取
    index.html
    ,并返回它

您必须将您的
index.html
移动到
public
目录中。如果您计划通过Internet访问此网站,您应该将“localhost:5000…”链接更改为“/index.html”和“/friends.html”,等等。它在Praveen声明的
public
目录中有
index.html
,对我来说效果很好
var express = require('express');
var app = express();
app.use(express.static('public'))