24

我在 Mac OS X 上运行最新版本的 Node。我已经安装了 Express 和 Stylus。还有最新版本。

当我修改它们时,Stylus 不会重新编译我的.styl文件。我怎样才能解决这个问题?

重新编译我的.styl文件的唯一解决方案是删除已编译的.css文件...重新启动我的应用程序,或执行清除缓存刷新(CMD + Shift + R)不会导致重新-编译。

这是我的应用程序配置的转储。这与使用可执行文件创建新的 express 应用程序时基本相同......

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\

4

3 回答 3

37

放在static()手写笔中间件下面。

于 2011-04-21T23:41:27.047 回答
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")

然后它根本没有重新编译。

我希望这个能帮上忙

于 2013-08-03T15:15:10.467 回答
0

默认设置 Express.js

app.use(require('stylus').middleware(path.join(__dirname, 'public')));

Stylus compress 设置 Express.js 必须在文档中添加样式表,页面加载编译并压缩css

app.use(require('stylus').middleware({src: path.join(__dirname, 'public'), compress: true}));
于 2015-07-05T03:58:09.033 回答