LESS在Express Js中不起作用

sat*_*god 2 less node.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);
});
Run Code Online (Sandbox Code Playgroud)

在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>
Run Code Online (Sandbox Code Playgroud)

我的风格.没有

@color: #4D926F;
h1 {
    color:@color;
}
Run Code Online (Sandbox Code Playgroud)

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

快递配置中的任何错过?

Ric*_*asi 5

  1. srcfor 设置为express.compiler公共根路径,而不是/ styles(相同static)
  2. 编译后的文件将是/ styles/style.CSS

在一个public文件夹中提供静态文件也是一种很好的做法.如果您从root服务,那么您将公开您的服务器源代码.

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)
})
Run Code Online (Sandbox Code Playgroud)