express不能为子ejs文件提供静态文件

时间:2013-06-05 15:35:28

标签: express ejs

快递版本为3.2.5,ejs版本为0.8.4

我想提供stylesheets/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>

article.ejs内容

<%- include header %>
<p class="info">
  author:<a href="/u/<%= post.name %>"><%= post.name %></a> | 
  date:<%= post.time.minute %>
 </p>
 <p><%- post.post %></p>
<%- include comment %>
<%- include footer %>

当我访问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目录

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您不能使用/启动样式表路径。所以它相对于任何要求它的HTML文件加载“stylesheets / style.css”。