我最近开始学习Node.js,并且尝试使用较少中间件来设置快速安装,并希望减少使用Bootstrap 3。我环顾四周,但只能找到Bootstrap 2的教程。

到目前为止,这是我的代码:

/**
 * Module dependencies.
 */

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(require('less-middleware')({
        dest: __dirname + '/public/stylesheets',
        src: __dirname + '/public/stylesheets/less',
        prefix: '/stylesheets',
        compress: true,
        debug: true,
        force: true
    }));
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});


运行服务器时,得到以下信息:

GET / 200 190ms - 180b
  source : /home/user/www/website.com/public/stylesheets/less/bootstrap.less
  dest : /home/user/www/website.com/public/stylesheets/bootstrap.css
  read : /home/user/www/website.com/public/stylesheets/less/bootstrap.less
  render : /home/user/www/website.com/public/stylesheets/less/bootstrap.less
GET /stylesheets/bootstrap.css 200 565ms - 97.43kb


但是我更改的样式似乎没有生效。有人可以告诉我我要去哪里了吗?

谢谢

最佳答案

取而代之的是从不太中间件的github页面使用它,现在可以正常工作了。

var less = require('less-middleware');

app.configure(function(){
  // ...
  var bootstrapPath = path.join(__dirname, 'node_modules', 'bootstrap');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use('/img', express['static'](path.join(bootstrapPath, 'img')));
  app.use(app.router);
  app.use(less({
    src    : path.join(__dirname, 'public/stylesheets', 'less'),
    paths  : [path.join(bootstrapPath, 'less')],
    dest   : path.join(__dirname, 'public', 'stylesheets'),
    prefix : '/stylesheets',
    debug: true
  }));
  app.use(express['static'](path.join(__dirname, 'public')));
  // ...
});

09-17 18:36
查看更多