2015-07-09 56 views
0

不知道这里发生了什么。我以前做过这种事情,工作得很好。我正在尝试创建一个博客,以加载来自MongoDB的markdown格式的帖子,并将它们插入到一个jade模板中。这部分似乎都工作正常,直到我尝试添加一个CSS文件(我使用app.use(express.static(dirname__ + '/public'))并将CSS文件放入public)。将链接添加到Jade文件之前,一切正常。当我添加链接到CSS文件时,应用程序加载正确,但没有添加CSS样式,并且终端中出现错误消息。当然,如果我尝试刷新,它会告诉我该网页不可用。为什么添加一个CSS链接到我的玉模板让我的节点应用程序崩溃?

这里的错误消息,它给了我:

TypeError: Cannot read property 'entry' of undefined 

下面是错误消息指向路由器:

app.get('/article/:title', function(req, res){ 
    var title = req.params.title; 
    MongoClient.connect(dbUrl, function(err, db){ 
     if(err){ 
      return err; 
     }else{ 
      var col = db.collection('posts'); 
      col.find({ title: title }).toArray(function(err, docs){ 
       if(err){ 
        return err; 
       }else{ 
        res.render('article', { md: marked, post: docs[0].entry }) 
        return db.close(); 
       } 
      }); 
     } 
    }); 
}); 

这是我的玉文件:

doctype html 
html 
    head 
     link(rel='stylesheet', href='style.css') 
     title Article 
    body 
     header 
      h1 Blog Title 
       br 
       span Subheader 
     content!= md(post) 

我已经尝试了几种不同的东西。似乎将链接指向一个不存在的文件根本没有任何作用,所以问题不在于CSS链接的完整性,而在于链接到它的行为。我还将其与我制作的其他节点应用程序进行了比较,这些节点应用程序确实有效,而且我没有看到任何显着差异。再次,直到我尝试将CS​​S文件的链接添加到玉模板中,应用程序才没有错误。它加载所有内容(包括数据库的降价,并将其呈现在页面上),但不包括CSS样式,则崩溃。有人能给我一个想法,为什么这不起作用?

回答

2

试试这个:

link(href='/stylesheets/style.css') 

,并把你的CSS的样式表文件夹

+0

这工作......但现在我超级困惑,因为所有其他项目,我做了,我没有”不要添加斜杠,但他们仍然有效。你知道他们有时是否有必要的原因,但有时候不是吗? – Nathan

相关问题