4

更新: stylus 0.7.4 と express 2.3.12 に更新した後、これを再現できなくなりました。おそらく、以前のバージョンのスタイラスのどこかにバグがあったのでしょう。

最も基本的な Express + スタイラス セットアップを接続しようとしています。screen.styl を css にレンダリングし、/screen.css の GET が処理されたときに応答で返されるようにしたいと考えています。

スタイラス ミドルウェアをデバッグしましたが、デバッガーが追いつかない方向に飛び回っています。スタイラス ミドルウェア コードは問題ないように見えますが、aGET /screen.cssError: ENOENT, No such file or directory '/Users/plyons/projects/test_stylus/screen.css'応答で出てしまいます。

たった 2 つのファイルを含むテスト ディレクトリがあります (サーバーは coffeescript にありますが、それは些細なことです)。

screen.styl     server.coffee

猫サーバー.コーヒー

express = require 'express'
app = express.createServer()
app.use require('stylus').middleware(__dirname)
app.use express.static __dirname
app.listen 9800

猫 screen.styl

a
  background-color red

スタイラスの middleware.js ファイルをしばらく見つめていたので、これでうまくいくはずだと思います。スタイラス ミドルウェアは確実に実行され、存在するファイルとまだ存在しないファイルfs.statの両方で実行しようとしていますが、ミドルウェアはそれを検出して問題なく処理する必要があるようです (.スタイルを作成し、結果を .css に保存します)。しかし、.css ファイルは書き込まれません。それが書かれている場合、システムはミドルウェアが応答で実際に何も送信せずに呼び出すように設計されていますが、静的プロバイダーは .css ファイルを見つけて応答として送信しますよね?.styl.cssENOENTENOENTnext()

ここで私が間違っていることを知っている人はいますか?

4

1 に答える 1

1

更新: stylus 0.7.4 と express 2.3.12 に更新した後、これを再現できなくなりました。おそらく、以前のバージョンのスタイラスのどこかにバグがあったのでしょう。

于 2012-06-28T20:46:11.630 に答える