2

私は現在LocomotiveJSをテストしていて、非常にシンプルな「helloworld」アプリを起動しています

接続ファビコンミドルウェアを設定すると思いましたが、任意のルート(たとえば、「/」)にアクセスすると、コンソールに次のように表示されます。

127.0.0.1 - - [Tue, 17 Jul 2012 21:41:25 GMT] "GET / HTTP/1.1" 200 1491 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
Error: Forbidden
    at SendStream.error (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/send/lib/send.js:142:16)
    at SendStream.pipe (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/send/lib/send.js:307:52)
    at Object.static (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/connect/lib/middleware/static.js:78:8)
    at next (/usr/local/lib/node_modules/locomotive/node_modules/express/node_modules/connect/lib/http.js:204:15)
    at pass (/usr/local/lib/node_modules/locomotive/node_modules/express/lib/router/index.js:219:24)
    at Router._dispatch (/usr/local/lib/node_modules/locomotive/node_modules/express/lib/router/index.js:280:5)
    at Object.middleware [as handle] (/usr/local/lib/node_modules/locomotive/node_modules/express/lib/router/index.js:45:10)
    at next (/usr/local/lib/node_modules/locomotive/node_modules/express/node_modules/connect/lib/http.js:204:15)
    at multipart (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/connect/lib/middleware/multipart.js:52:61)
    at module.exports (/Users/alex/Desktop/LocoTest/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:57:9)
127.0.0.1 - - [Tue, 17 Jul 2012 21:41:25 GMT] "GET /favicon.ico HTTP/1.1" 403 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"

これを引き起こしているものは何ですか?

4

2 に答える 2

2

送信ミドルウェアは、ルートではなく「..」を含んでいるため、このリクエストを悪意のあるものと見なしているようです。なぜ/favicon.icoisMaliciousが戻ってくるのかわかりませんtrue。とをデバッグしisMaliciousて調べることをお勧めthis._rootthis.pathます。ミドルウェアのバグかsend、コードがそれらを構成していない可能性があります。faviconあなたがいくつかのコードを投稿しない限り、それを助けることはできません。

于 2012-07-18T00:17:32.480 に答える
1

ExpressとConnectのどのバージョンが依存関係として取り込まれましたか?express@3.0.0beta6でバグが発生しました。これは、beta7で修正されたと思います(自分で確認していませんが)。私はexpress@3.0.0beta4で実行していますが、これは機能することがわかっています。次のように実行すると、元に戻すことができます。

$ npm uninstall express
$ npm install express@3.0.0beta4

Locomotiveのマスターブランチは、Express 3.xベータを使用しています。これは、一般的にかなり堅実です。それが安定し、新しいリリースをプッシュすることを楽しみにしています。

于 2012-07-19T20:15:04.557 に答える