您好,我正在使用express.js制作一个webapp来购买门票。所以我有一个页面可以指导一个人关于派对的信息,但是,当我尝试将静态文件加载到此页面时,express.js无法获取。
在控制台视图中,我看到一个新目录,其名称为url的路径,是在静态文件夹之前设置的。
我的app.js文件:
var express = require('express');
var path = require('path');
var teste = require('./db/teste.json')
var app = express();
var list = Object.keys(teste).map( (value) => teste[value]);
app.set('view engine', 'jade');
app.set('views', (__dirname + '/views'));
app.use('/static', express.static(path.join(__dirname, 'public')));
app.get('/', function(req, res){
res.render('index')
});
app.get('/login/', function(req, res){
res.render('login')
});
app.get('/dash/:title?', function(req, res){
var title = req.params.title;
if(title === undefined){
res.status(503);
var isDash = true;
res.render('dash', {db: list, isDash: isDash});
}else{
var festa = teste.title;
res.render('party', {db: festa, isDash: isDash});
}
});
PS:仅在此页面中发生。
谢谢!
答案 0 :(得分:0)
因为页面是localhost:3000 / dash / party-of-party,所以使用相对URL的静态资源将相对于该页面引用,例如:
<img src="static/something.jpg">
将使用完整网址http://localhost:3000/dash/static/something.jpg
检索。相反,您可以使用src="/static/something.jpg"
(注意前导斜杠),它可能会起作用。只是为了确认这是你可以添加的问题:
app.use('/dash/static', express.static(path.join(__dirname, 'public')));
在映射静态资源的现有行之后。