2011-06-13 23 views
8

工作我app.coffee看起來是這樣的:如何獲得手寫筆與Express和Connect在CoffeeScript中

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-文件。

+0

你的實際問題是什麼? – Raynos 2011-06-13 18:13:00

+0

更新上面... – Alfred 2011-06-13 18:20:21

回答

4

找到了答案,補充說:

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

另外它顯然是好的將stylus.middleware代碼移動到connect.public上方。 – Alfred 2011-06-18 09:01:20

+3

...並且您在哪裏添加了? – 2012-10-26 04:08:10

+0

我同意@ScottDavidTesler,這個答案不完整。 – jcollum 2013-01-25 21:03:03

3

當然你也可以提供自己的編譯功能,但它不必要覆蓋默認的一個。相反,添加調試選項,您的電話中間件和檢查,事情會出錯:

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

對於我來說,這個問題是設置錯誤源/目標路徑。你確定你的.styl文件確實位於你的視圖文件夾中嗎?