不确定这里发生了什么。我以前做过这种事情并且工作得很好。我试图创建一个博客,从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链接的完整性,而在于链接到它的行为。我还将其与我做过的其他节点应用程序进行了比较,但是我没有看到任何重大差异。再一次,在我尝试将CSS文件的链接添加到jade模板之前,应用程序没有错误。它加载所有内容(包括数据库中的markdown,并在页面上呈现),但不包含CSS样式,然后崩溃。有人可以告诉我为什么这不起作用吗?
答案 0 :(得分:2)
试试这个:
link(href='/stylesheets/style.css')
并将你的css放在stylesheets文件夹
中