在玉器链接的CSS文件不加载

这是我的目录结构看起来像

--votingApp app.js node_modules public css mystyle.css views test.jade mixins.jade 

我在mixins.jade中写了一些通用的块。 test.jade是主文件.biolerplate,nav,nav item是mixin中的不同块。 这就是test.jade的样子

 include mixins doctype html html(lang="en") head +boilerplate link(rel="stylesheet",type="text/css",href="../public/css/mystyle.css") body +nav("Voting app","navigation_menu") +nav_item("#","active") Home +nav_item("#") Signup +nav_item("#") Login 

这是我的app.js文件

 var express=require('express'); var path=require('path'); var app=express(); app.use(express.static(path.join(__dirname,'public'))); app.set('views','./views'); app.set('view engine','jade'); app.get('/',function(req,res){ res.render('test.jade'); }); app.listen(8000); 

问题是mystyle.css没有被加载。在mozilla的开发者控制台中的networking选项显示对于mystyle.css(request url- http:// localhost:8000 / public / css / mystyle.css )我应该怎么做,请帮忙?谢谢阅读。

加载你的css时,你不需要相对path,这就是为什么你已经将公共目录定义为一个静态资源 。

更新你的链接到这个:

link(rel="stylesheet",type="text/css",href="/public/css/mystyle.css")

简单地使用这个:

 link(rel="stylesheet",type="text/css",href="/css/mystyle.css") 

相对path从来不会和node.js一起工作,所以绝对像

 link(rel="stylesheet",type="text/css",href="css/mystyle.css") 

并使用以下行将您的目录设置为公用文件夹

 app.use(express.static(path.join(__dirname,'public'))); 

所以放弃写公共CSS的path。