Express 4:重定向后,我无法获取静态文件

时间:2016-06-06 09:06:25

标签: node.js express

我在使用Express 4和静态文件时遇到了麻烦。成功登录后,我将我的网络应用程序重定向到' / home / userId'但是,我在所有静态文件上获得404。这是我的路由器:

router.get('/home/:userid', function(req, res, next) {
  // TODO check if token is valid
 User.findById(req.params.userid).exec(function(err, find) {
    if (err) return next(err);
    if (!find) {
      return res.json(utils.createErrorJsonResponse(404, "User not found!"));
    }
    return res.render('home', {
      title: 'Organizator',
      user: find
    });
  })
});

我认为没有用到显示我的jade文件,唯一重要的是有很多导入的脚本,但只是举个例子,这就是我加载css文件的方式:

  link(href='css/style.css', rel='stylesheet')

这就是我设置静态文件的方式

  app.use(express.static(config.root + '/public',{ maxAge: 86400000 }));

在哪里' config.root'是我的:

path.normalize(__dirname + '/..')

如前所述,如果我连接到基本页面,那么在我的情况下:

http://localhost:3000

我的所有静态文件都已导入,但是一旦我重定向我就得到了404.那么我该怎么办呢?例如。我有一个名为' style.css'的样式文件。在控制台的基本页面(' http://localhost:3000)中,我可以看到:

Request URL:http://localhost:3000/css/style.css
Request Method:GET
Status Code:200 OK (from cache)

然后来自' http://localhost:3000/home/':

Request URL:http://localhost:3000/home/css/style.css
Request Method:GET
Status Code:404 Not Found

所以问题是' / home',但我怎样才能删除"它来自静态文件请求?谢谢。

1 个答案:

答案 0 :(得分:3)

正如@Molda在评论中所解释的那样,请确保您的链接以/开头,否则路径将相对于实际路线http://localhost:3000/home