2011-11-03 54 views
11

我使用express和jade,但是當我調試時,我不希望jade壓縮我的html,有什麼方法可以在全局範圍內傳遞選項jade,並且不會壓縮html。如何表達和玉不壓縮HTML?

+0

你的意思是說,當你查看頁面的源代碼時,你想要顯示的玉石模板? –

+0

@ChrisBiscardi是 –

+0

他意味着他希望在編譯玉石中間件期間關閉壓縮。我相信。至少這就是我想要的。 – light24bulbs

回答

9

自從寫了這個答案之後,添加了一個選項來控制這種行爲。

app.locals.pretty = true; 

此刻,沒有。此功能已在這裏討論:

https://github.com/visionmedia/jade/pull/205

的HTML實際上並沒有得到壓縮或默認過壓縮,雖然。它只是沒有格式化很好。我發現使其易於閱讀的最簡單方法是使用Chrome的開發工具,它爲您提供源代碼的很好的可摺疊表示。

+14

我問TJ。使用'app.set('view options',{pretty:true});' –

+0

不錯,這工作完美! –

+0

@桂林桂林這不應該是被接受的答案。最讚的答案是正確的答案 – light24bulbs

1

您可以使用Jade Comments來註釋代碼以便在瀏覽器中查看。

//h1 
h1 Some Title 
//p 
p some content 

將輸出

<!--h1--> 
<h1>Some Title</h1> 
<!--p--> 
<p>some content</p> 

模板已編譯一旦離開服務器,所以如果你想查看在瀏覽器中的模板,你將不得不編寫一個插件去編譯HTML去翡翠,而不是顯示反編譯的版本。

+2

不應該那些HTML評論是? – Zikes

+1

nope,jade編譯//到

+0

@Zafe afaik,jade輸出HTML註釋並完全忽略///註釋。 – Andy

1

呵呵,新到nodejs所以可能在這裏丟失了一些東西;但在app.js加入app.set('view options', {pretty: true});是無效的(使用快遞3.0.3)。

..似乎不支持?找到了解決方法,例如在每個路由的基礎上:

exports.index = function(req, res){ 
    res.render('index', { 
    [... other stuff ...] 
    pretty: true 
    }); 
}; 
+0

如果你看看Andy的回答,那幾乎是一樣的。 ('res.render('index',{/ * view.locals * /})')。如果你在app.locals上設置它,它會擴展到你所有的'res.render()'調用。 [關於應用程序/視圖當地人如何工作的一些文檔。](http://expressjs.com/4x/api.html#app.locals) –

27

如果使用Express 3.x,則可以通過app.locals.pretty控制壓縮。我通常在開發的時候啓用它:

app.configure('development', function() { 
    app.locals.pretty = true; 
}); 
+2

就像一個魅力,非常感謝! – 2013-10-24 08:40:16

+0

這不適合我,但標記正確的答案適用於我... –