Pat*_*ick 23 less node.js express twitter-bootstrap
由于Twitter Bootstrap 2已经发布,我想将它集成到我的Node.js项目中.不幸的是,编译器越少越好,我无法使其工作.我将所有文件放入公共文件夹并设置了一个新项目express -c less newproj.并添加了较少的行
less = require('less');
app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
Run Code Online (Sandbox Code Playgroud)
所有节点告诉我的是:
Express server listening on port 3000 in development mode
undefined
Run Code Online (Sandbox Code Playgroud)
在客户端,我得到bootstrap.css文件的500(内部服务器错误),该文件应由lessc编译.
lessc bootstrap.less
Run Code Online (Sandbox Code Playgroud)
工作良好.
有谁知道如何解决这个问题?
Gol*_*Boy 19
对于后人来说,这在最近的Express中发生了很大变化:
app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));
// This is just boilerplate you should already have
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)
Chr*_*nty 11
好的,这是我找到的.首先,您需要编译器和静态中间件.编译器编译你的less并重新编译更改,静态中间件执行css的实际服务
app.use(express.compiler({ src : __dirname + '/public', enable: ['less']}));
app.use(express.static(__dirname + '/public'));
Run Code Online (Sandbox Code Playgroud)
其次,由于某些原因,当编译器运行时,它会丢失当前路径信息,因此无法找到包含.所以我必须通过bootstrap.css并添加每个导入的路径.
@import "/public/stylesheets/reset.less";
Run Code Online (Sandbox Code Playgroud)
这显然很奇怪,我将进一步深入研究.
编辑:奇怪的是,通过代码深入了解我并没有简单的方法.更多的搜索在连接repo https://github.com/senchalabs/connect/pull/174上找到了这个拉取请求,它提供了一个修复,但开发人员似乎并不想要它.
该线程中也有一些解决方法,但最好的想法是绝对路径包含.
| 归档时间: |
|
| 查看次数: |
23314 次 |
| 最近记录: |