簡體   English   中英

LESS在Express Js中不起作用

[英]LESS is not working in Express Js

我正在嘗試與Express JS一起使用

var app = express.createServer();
var pub = __dirname + '/styles';
app.configure(function(){
    app.set("view engine", "html");
    app.register(".html", require("jqtpl").express);
    app.set('views', __dirname + '/views');
    app.set("view options", { layout: true });

    app.use(express.compiler({ src:pub, enable: ['less'] }));
    app.use("/styles", express.static(pub));
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
    app.use(express.bodyParser());
    app.use(app.router);
});

在layout.html中

<!DOCTYPE HTML>
<html>
    <head>
        <title>${title}</title>
        <link rel="stylesheet" href="/styles/style.less" type="text/css" media="screen" title="main css" charset="utf-8">
    <head>
    <body>
            <h1>Hello World!</h1>
        {{html body}}
    </body>
</html>

我的風格是

@color: #4D926F;
h1 {
    color:@color;
}

我可以調用http://localhost/styles/style.less,但它不是渲染CSS。

快速配置中有任何遺漏嗎?

  1. express.compilersrc設置為您的公共根路徑,而不是/ styles(與static相同)
  2. 編譯后的文件將位於/ styles / style。 CSS

public文件夾中提供靜態文件也是一種很好的做法。 如果您是從根服務的,那么您將公開服務器源代碼。

var app    = express.createServer()
  , public = __dirname + "/public"

app.configure(function(){
    app.set('view engine', "html")
    app.register('.html', require('jqtpl').express)
    app.set('views', __dirname + "/views")
    app.set('view options', { layout: true })

    app.use(express.compiler({ src:public, enable: ['less'] }))
    app.use(express.static(public))
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }))
    app.use(express.bodyParser())
    app.use(app.router)
})

少中間件是更好的替代方案,效果很好。 這樣的代碼應該可以解決問題:

var pub_dir = __dirname + '/public';

app.use(require('less-middleware')({ src: pub_dir }));
app.use(express.static(pub_dir));

請注意,當您編寫something.less時,如果您希望文件也最小化,則應該實際鏈接到HTML或something.min.css。 默認情況下,每次文件更改時都會進行編譯/縮小,但是您可以配置行為。 請參閱不太中間件的文檔以獲取選項的完整列表: https : //github.com/emberfeather/less.js-middleware

我已經在GitHub上發布了一個名為node-kickstart-example程序包,程序包使用了一個方便的預配置express,並啟用了jade模板渲染並減少了樣式表處理。 使用npm安裝kickstart ,將您的Jade模板放置在views/ ,將較少的文件放置在assets/styles/ ,這樣您就可以開始了……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM