在另一个子文件夹中达到html文件express.js

问题描述:

我的文件夹层次结构如下;在另一个子文件夹中达到html文件express.js

公共

---- index.html的

SRC

---- server.js

当我运行的代码

var express = require('express'); 
 
var app = express(); 
 
var serv = require('http').Server(app); 
 
var net = require('net'); 
 
var path = require('path'); 
 
var port = 3000; 
 

 
app.use('/../public/', express.static(path.join(__dirname + '/../public/'))); 
 

 
app.get('/', function(req,res){ 
 
    res.sendFile(__dirname + '/../public/index.html'); 
 
}); 
 

 
serv.listen(3000, function(){ 
 
    console.log('port ' + port + ' is started to being listened') 
 
}); 
 

 
var io = require('socket.io')(serv,{});

它返回禁止的错误。我怎样才能到达另一个子文件中的文件?


首先,我以为解决了,它实际上并没有解决,因为我运行多个项目了解的基本知识,我很困惑。但现在一切都很清楚。我实际上试图做的是试图使用快递将所有内容分割为文件夹。由于我对http的了解不多,因此我观看了很多视频,最后,我在YouTube上观看快速官方介绍视频后发现它。

这里又是我想要完成的;

-localhost --public --- index.html的 --src ---所有服务器js文件和其他文件,将涉及游戏编程。

正如我试图达到上面,我无法做到这一点。实际上做什么的窍门是;

创建一个变量,指定'public'目录,它是localhost下的另一个子目录,并将其用作静态,从一开始就很简单,但由于我不太了解,所以在学习后我无法使用它几个教程。正如迈克尔在上面提到的那样,我甚至不需要以下几行;

app.get(publicDir, function(req, res){ 
     res.sendFile('index.html'); 
    }) 

我所做的只是;


 
var publicDir = require('path').join(__dirname, '/../public'); 
 

 
app.use(express.static(publicDir));

+0

来访问您的index.html您能看到确切的错误信息吗? – andrel

app.use('/../public/' 

并没有真正意义。此参数表示请求URL。您不能侦听位于其他位置但不位于根文件夹内的请求URL。

请记住,app.use('/'等于一个请求URL,如http://localhost:3000 - 这意味着这是网站的绝对基础 - 所谓的根。那么'/../public'应该指向哪里?没有可以到达这样的地址的URL。

如果你写app.use('/public'将侦听请求上http://localhost:3000/public

但是,当然,你必须要在可以发送位于文件结构的文件。所以,可能是你想要的东西是:

app.use(express.static(__dirname + '/../public')); 

为了寻找像一个文件夹结构的静态文件:

public 
-styles.css 
-script.js 
-index.html 
server 
-currentscript.js 

在那里你可以访问诸如http://localhost:3000/styles.css

你也可以完全静态文件删除此控制器:

app.get('/', function(req,res){ 
    res.sendFile(__dirname + '/../public/index.html'); 
}); 

静态文件,如HTML已经由上面提到的Express静态文件控制器提供服务。 这可以通过调用http://localhost:3000