我在Mac OS X上运行最新版本的Node。我已经将Express与Stylus一起安装。也是最新版本。
当我修改它们时,Stylus没有重新编译我的 .styl 文件。我该如何解决这个问题?
重新编译 .styl 文件的唯一解决方案是删除已编译的 .css 文件...重新启动我的应用程序,或者执行clear-cache-refresh(CMD + Shift + R)不会导致重新编译。
这是我的应用程序配置的转储。它与使用可执行文件创建新的快速应用程序时基本相同......
app.configure(function ()
{
this.set("views", __dirname + "/views");
this.set("view engine", "jade");
this.use(express.bodyParser());
this.use(express.methodOverride());
this.use(express.static(__dirname + '/public'));
this.use(require("stylus").middleware({
src: __dirname + "/public",
compress: true
}));
this.use(this.router);
});
我的 .styl 和已编译的 .css 文件都位于[application]\public\stylesheets\
答案 0 :(得分:37)
将static()
放在手写笔中间件下方。
答案 1 :(得分:3)
现在已经太晚了,但我刚刚过了几个小时(T__T),我认为这是玉的一个错误或类似的东西。我会自己解释一下: 在server.js中使用此代码:
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(
stylus.middleware({
src: __dirname + "/assets/stylus",
dest: __dirname + "/assets/css",
debug: true,
compile : function(str, path) {
console.log('compiling');
return stylus(str)
.set('filename', path)
.set('warn', true)
.set('compress', true);
}
})
);
app.use(express.static(__dirname + '/assets'));
并在index.jade中:
link(rel="stylesheet", href="css/style.css")
它完美无缺。问题是在链接标记中有:
link(rel="stylesheet", href="stylesheets/style.css")
然后它根本没有重新编译。
我希望这会有所帮助
答案 2 :(得分:0)
默认设置Express.js
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
Stylus压缩设置Express.js 你必须在文档中添加样式表,编译页面加载并压缩css
app.use(require('stylus').middleware({src: path.join(__dirname, 'public'), compress: true}));