更新: stylus 0.7.4 と express 2.3.12 に更新した後、これを再現できなくなりました。おそらく、以前のバージョンのスタイラスのどこかにバグがあったのでしょう。
最も基本的な Express + スタイラス セットアップを接続しようとしています。screen.styl を css にレンダリングし、/screen.css の GET が処理されたときに応答で返されるようにしたいと考えています。
スタイラス ミドルウェアをデバッグしましたが、デバッガーが追いつかない方向に飛び回っています。スタイラス ミドルウェア コードは問題ないように見えますが、aGET /screen.css
がError: 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
.css
ENOENT
ENOENT
next()
ここで私が間違っていることを知っている人はいますか?