[英]TypeError: path must be absolute or specify root to res.sendFile
[英]Angularjs - TypeError: path must be absolute or specify root to res.sendFile
我正在尝试使用angularjs创建一个联系人应用程序。 我在项目的根目录中创建了一个名为server.js的文件。 这是代码:
var express = require('express'),
app = express();
app
.use(express.static('./public'))
.get('*', function (req, res) {
res.sendfile('public/main.html');
})
.listen(3000);
当我转到localhost:3000时,这是出现的错误消息。
TypeError:path必须是绝对的,或者在D:\\ Workspace \\ contacts \\ server.js的ServerResponse.sendFile(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ response.js:389:11)中指定root到res.sendFile :7:7在Layer.handle [as handle_request](D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ layer.js:82:5)下一步(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ route.js:100:13)在Route.dispatch(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ route.js:81:3)在Layer.handle [as handle_request](D :\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ layer.js:82:5)在Function.proto的D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:235:24。 process_params(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:313:12)位于D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:229:12 at Function .match_layer(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:296:3)
有没有人有什么建议? 任何帮助将不胜感激。
var path = require('path');
res.sendFile(path.join(__dirname, './public', 'main.html'));
尝试这个:
res.sendfile(__dirname + '/public/main.html');
您必须指定绝对路径(以/开头)
您应该将get('*')函数中的路径更改为绝对路径:
res.sendfile('public/main.html');
你可以使用express' __dirname
。
确保您访问相对于当前工作目录的公共目录。 以下更改应适用于您的情况
var express = require('express'),
app = express(),
path = require('path'),
publicDir = path.join(__dirname, 'public');
app.use(express.static(publicDir))
app.get('*', function(req, res){
res.sendFile(path.join(publicDir, 'main.html'));
}).listen(3000);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.