2012-05-15 31 views
10

我有這個玉文件:如何包括在玉一個CSS文件(不鏈接)

!!! 5 
html 
    head 
    title test include 
    style(type='text/css') 
     //- DOES NOT WORK! 
     include test.css 
    body 
    //- works 
    include test.css 
    div 
     //- works 
     include test.css 

輸出:

$ jade -P test.jade 
rendered test.html 
$ cat test.html 
<!DOCTYPE html> 
<html> 
    <head> 
    <title>test include</title> 
    <style type="text/css"> 
     //- DOES NOT WORK! 
     include test.css 
    </style> 
    </head> 
    <body>body { color: peachpuff; } 

    <div> body { color: peachpuff; } 

    </div> 
    </body> 
</html> 

當然,我可以簡單地鏈接的CSS文件, 但我不想。

+0

我不認爲這是可能的,但爲什麼不是簡單的解決方案? – jsbeckr

+2

我想你想要在服務器文件中將HTML與HTML分開,但在html中提供樣式以避免獲取CSS的額外請求。 這是錯誤的:你將不會被要求每一個時間,因爲它會被緩存文件添加額外的計算(文件包含)。 –

回答

12

我沒有測試它,但(沒有我的開發電腦自動取款機),但有機會做這樣的事情可以工作:

!!! 
head 
    title test include 
    | <style type='text/css'> 
    include test.css 
    | </style> 

順便說一句,我發現HTML2Jade在線轉換器而不是Jade2HTML。任何想法在哪裏可以找到它?

+1

我檢查了它,它的工作原理。 – Webthusiast

+0

謝謝,希望user470370將其標記爲已回答;) –

+0

謝謝,作品!我不知道任何在線轉換器。但是我找到了第一個失敗的原因:「只接受腳本和樣式等文本的標籤不需要前導字符」(https:// github。com/visionmedia/jade) – user470370

-1

一個可能的解決辦法是:

style(type="text/css") 
    #{css} 

然後通過在res.render(...)調用CSS-文本。

+0

我覺得非常非常髒:您鏈接功能和數據的造型... –

+0

這是..它只是爲他的問題的解決方案,我真的不明白的。 ;) – jsbeckr

+1

看到我的評論關於他的目標;) –

1

fs的數據,你可以

style !{fs.readFileSync("index.css").toString()} 
+0

不完全交叉實現安全,但是很好的破解 – CoolAJ86

0

在玉的當前版本(0.35.0)這將是足夠寫只是include style.css

完整的示例(考慮你正在寫index.jade,它位於views文件夾中,而你的風格是assets文件夾):

!!! 
html 
    head 
     include ../assets/bootstrap3/css/bootstrap-theme.css 
     include ../assets/bootstrap3/css/bootstrap.css 
body 
    h1 Hi! 

請注意沒有style標籤的模板,它會自動插入玉(這是一個很好的功能!)。

+0

從1.0.0開始(至少),這似乎不再是這種情況:如果您不指定一些更多細節的CSS僅包含在逐字記錄中,不在風格標籤 –

+0

中,您必須包含樣式標籤,它不會自動添加。 – Nicekiwi

2

阿爾諾的回答爲我工作,但我既然發現了這是一個少許清潔劑:

doctype 
head 
    title test include 
    style(type="text/css"): include test.css 

(type="text/css")也是可選的,根據您的情況。

8

jade docs

doctype html 
html 
    head 
    style 
     include style.css 
    body 
    h1 My Site 
    p Welcome to my super lame site. 

它可以完美運行。

+0

雖然這確實起作用,但我想補充說,它與原始問題中的代碼相同,區別在於版本(已過去3年)。 – pzy