如何让Stylus在CoffeeScript中使用Express和Connect工作

我的app.coffee看起来像这样:

connect = require 'connect' express = require 'express' jade = require 'jade' stylus = require 'stylus' app = express.createServer() # CONFIGURATION app.configure(() -> app.set 'view engine', 'jade' app.set 'views', "#{__dirname}/views" app.use connect.bodyParser() app.use connect.static(__dirname + '/public') app.use express.cookieParser() app.use express.session({secret : "shhhhhhhhhhhhhh!"}) app.use express.logger() app.use express.methodOverride() app.use app.router app.use stylus.middleware({ force: true src: "#{__dirname}/views" dest: "#{__dirname}/public/css" compress: true }) ) # ROUTES app.get '/', (req, res) -> res.render 'index', locals: title: 'Title' # SERVER app.listen(1234) console.log "Express server listening on port #{app.address().port}" 

更新:我不明白它写的CSS文件。

find答案,补充说:

 compile = (str, path, fn) -> stylus(str).set('filename', path).set('compress', true) 

你当然可以提供你自己的编译function,但它不必要地覆盖默认的编译function。 相反,将debugging选项添加到您的中间件调用,并检查出现问题的地方:

  app.use stylus.middleware debug: true force: true src: "#{__dirname}/../public" dest: "#{__dirname}/../public" 

对我来说,问题是设置错误的src / destpath。 你确定你的.styl文件确实位于你的视图文件夹?