24

MacOSXで最新バージョンのNodeを実行しています。ExpressをStylusと一緒にインストールしました。また、最新バージョン。

.stylファイルを変更しても、Stylusは再コンパイルしません。どうすればこれを修正できますか?

.stylファイルを再コンパイルする唯一の解決策は、コンパイルされた.cssファイルを削除することです...アプリケーションを再起動するか、clear-cache-refresh(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')));

スタイラスペン圧縮設定Express.jsドキュメントにスタイルシートを追加する必要があります。ページの読み込みがコンパイルされ、cssが圧縮されます。

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