为什么在我的jade模板中添加CSS链接会导致我的节点应用崩溃?

时间:2015-07-09 22:46:54

标签: javascript node.js mongodb express pug

不确定这里发生了什么。我以前做过这种事情并且工作得很好。我试图创建一个博客,从MongoDB加载markdown格式的帖子,并将它们插入到jade模板中。在我尝试添加CSS文件(我使用app.use(express.static(dirname__ + '/public'))并将CSS文件放在public中)之前,这部分似乎都运行正常。在将CSS文件的链接添加到Jade文件之前,一切正常。当我添加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文件的链接添加到jade模板之前,应用程序没有错误。它加载所有内容(包括数据库中的markdown,并在页面上呈现),但不包含CSS样式,然后崩溃。有人可以告诉我为什么这不起作用吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

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

并将你的css放在stylesheets文件夹