express can';t为子ejs文件提供静态文件

express can';t为子ejs文件提供静态文件,express,ejs,Express,Ejs,express版本是3.2.5,ejs版本是0.8.4 我想提供样式表/style.css 我在app.js中这样做 app.use(express.static(path.join(__dirname, 'public'))); app.use(app.router); // render article.ejs app.get('/u/:name/:day/:title', function(req,res){ Post.getOne(req.params.name

express版本是3.2.5,ejs版本是0.8.4

我想提供
样式表/style.css

我在
app.js中这样做

  app.use(express.static(path.join(__dirname, 'public')));
  app.use(app.router);

  // render article.ejs
  app.get('/u/:name/:day/:title', function(req,res){
    Post.getOne(req.params.name, req.params.day, req.params.title, function(err, post){
      if(err){
        req.flash('error',err);
        return res.redirect('/');
      }
      res.render('article',{
        title: req.params.title,
        post: post,
        user: req.session.user,
        success: req.flash('success').toString(),
        error: req.flash('error').toString()
      });
    });
  });
我的结构是
header.ejs

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Blog</title>
<link rel="stylesheet" href="stylesheets/style.css">
</head>
<body>
当我访问
http://localhost:3000/

GET /stylesheets/style.css 304 9ms 
而访问
localhost:3000/u/username/date/postname

GET /u/username/date/stylesheets/style.css 404 10ms
为什么显示这个
/u/username/date/stylesheets/style.css
目录


有什么想法吗?

您的样式表路径不是以/开头的。因此,它正在加载“stylesheets/style.css”,相对于请求它的HTML文件

样式表路径不是以/开头的。因此,它正在加载“stylesheets/style.css”,相对于请求它的HTML文件

我试过你说的
它仍然加载相对路径,这是因为./是相对路径。Do/stylesheets/style.css。这是一个绝对路径我尝试了你说的
它仍然加载相对路径,这是因为./是一个相对路径。Do/stylesheets/style.css。这是一条绝对的道路
GET /u/username/date/stylesheets/style.css 404 10ms