在另一个子文件夹中达到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));
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
来访问您的
index.html
您能看到确切的错误信息吗? – andrel