与express.js冲突 - 无法获取我的静态文件

时间:2016-06-21 00:54:03

标签: javascript node.js express

您好,我正在使用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});
 }
});

The console view:

PS:仅在此页面中发生。

谢谢!

1 个答案:

答案 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')));

在映射静态资源的现有行之后。