不知道这里发生了什么。我以前做过这种事情,工作得很好。我正在尝试创建一个博客,以加载来自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链接的完整性,而在于链接到它的行为。我还将其与我制作的其他节点应用程序进行了比较,这些节点应用程序确实有效,而且我没有看到任何显着差异。再次,直到我尝试将CSS文件的链接添加到玉模板中,应用程序才没有错误。它加载所有内容(包括数据库的降价,并将其呈现在页面上),但不包括CSS样式,则崩溃。有人能给我一个想法,为什么这不起作用?
这工作......但现在我超级困惑,因为所有其他项目,我做了,我没有”不要添加斜杠,但他们仍然有效。你知道他们有时是否有必要的原因,但有时候不是吗? – Nathan