[英]How do I use Less with Express.js?
我试图将Less与Express.js结合使用,但是我不确定我的设置是否正确。
我的文件夹/文件结构如下:
在我的app.js
:
var express = require('./node_modules/express');
var lessMiddleware = require('./node_modules/less-middleware');
var app = express();
app.set('view engine', 'ejs');
app.set("views", "./views");
app.get('/', function(req, res, next)
{
res.render('index.ejs');
});
app.use(lessMiddleware(__dirname + "/public/styles"));
app.use(express.static(__dirname + '/public'));
app.listen(3000);
在我的index.ejs
:
<link rel="stylesheet" type="text/css" href="/public/styles/test.css">
如果我理解正确,则该模块应该接受我的test.less
并将其编译为test.css
然后再提供给客户端使用?
我究竟做错了什么 ?
更新:看起来/ public没有提供任何服务。
http://localhost:3000/public
返回Cannot GET /public
您使用/ public / less而不是/ public / styles,并且需要将该目录作为静态目录提供:
app.use(express.static(__dirname + '/public'))
然后创建链接href /styles/test.css。
编辑:
您需要在定义任何路由之前将较少的中间件和静态中间件移到顶部。
我的意思是您需要安装此软件包: https : //www.npmjs.com/package/express-less
简单的通过运行安装较少的中间件npm install --save less-middleware
,这行添加到您的app.js文件:
app.use(require('less-middleware')(path.join(__dirname, 'public')));
它会检查所有.less
和编译文件的飞行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.