Nodes Express App.Route Path混淆Other文件夹

时间:2017-06-15 08:41:19

标签: javascript node.js express

我使用Nodes.js Express来做我的路线。

对于正常的... localhost:8080 /订购它的工作井。但我尝试使用ID方法localhost:8080 / Order / ID-12345使用get方法并继续ViewOrder.html来执行该功能。但它显示出一些错误。

错误
无法加载资源:服务器响应状态为404(未找到) localhost:1337 / 订单 /img/p7.jpg

无法加载资源:服务器响应状态为404(未找到) 本地主机:1337 / 订单 /css/bootstrap.min.css

等等。

而不是 本地主机:1337 / CSS / bootstrap.min.css

// Index Page 

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

app.get('/Orders/:item', function (req, res) {

    res.sendFile(__dirname + '/ViewOrder.html');

});

订单订单不是目录。我使用了部分路线 code

Error

4 个答案:

答案 0 :(得分:1)

在你的文件server.js(启动你的应用程序的文件)中你设置了静态目录吗?

对我而言,这可以解决您的问题:

var app = express();
app.use('/Orders', express.static(__dirname));

此设置为项目设置静态文件。

有关详情,请访问express static resources

答案 1 :(得分:0)

如果您希望html页面加载css / js资产,则需要将它们作为静态文件提供(文档:http://expressjs.com/en/starter/static-files.html

答案 2 :(得分:0)

由于您尚未指定静态文件夹,因此无法加载图片和引导程序文件。

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

使用此功能,可以通过/media/img/p7.jpg引用媒体文件夹中的所有文件来请求它们。

您也可以更改请求路径:

app.use('/static', express.static(__dirname + '/your/real/path'));

因此,您可以将它们称为/static/img/p7.jpg

答案 3 :(得分:0)

Yep! You need to specify your static folders in order serve static files.
So in your case i would do this to your server.js ;)

var express = require('express'),
app = express(),
http = require('http').Server(app);

const ipaddress = "127.0.0.1";
const port = 1337;

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

app.get('/', function (req, res) {
 res.sendFile('index.html', {"root": __dirname});
});

app.get('/:id', function (req, res) {
 var param=req.params.id;/// hu! gotcha little param
 res.sendFile('Orders/index.html', {"root": __dirname});
});

http.listen(port, ipaddress, function () {
 console.log((new Date()) + ' Server is listening on port' + port);
});  

UPDATE - according to comment (Actually Order is not a directory, I use Order as route to linked to directory – Brian)

Pretend a public folder would be your root/static this would be my second attempt

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

app.get('/Order', function (req, res) {
 res.sendFile('public/index.html', {"root": __dirname});
});

app.get('/Orders/:item', function (req, res) {
 res.sendFile('public/ViewOrder.html', {"root": __dirname});
});  

attention
i had to modify static requests

<link rel="stylesheet" type="text/css" href="style.css">

               - TO - 

<link rel="stylesheet" type="text/css" href="/style.css">