【问题标题】:403 / Forbidden on favicon with NodeJS / Express403 / 禁止使用 NodeJS / Express 访问网站图标
【发布时间】:2012-07-17 21:50:38
【问题描述】:

我目前正在测试LocomotiveJS 并有一个非常简单的“hello world”应用程序

我以为我已经设置了连接网站图标中间件,但是当我访问任何路由(例如“/”)时,我会在控制台中看到以下内容:

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"

知道是什么原因造成的吗?

【问题讨论】:

标签: node.js express favicon http-status-code-403 locomotivejs


【解决方案1】:

看起来发送中间件是considering this request malicious,因为它不是根并且包含“..”。我不确定为什么 /favicon.ico 会导致 isMalicious 返回 true。我建议调试到isMalicious 并检查this._rootthis.path。可能是sendfavicon 中间件中的一些错误,或者您的代码可能没有配置它们。除非您发布一些代码,否则无能为力。

【讨论】:

    【解决方案2】:

    什么版本的 Express 和 Connect 作为依赖项被引入?我遇到了 express@3.0.0beta6 的错误,我认为它已在 beta7 中修复(尽管我自己还没有确认)。我在 express@3.0.0beta4 上运行,我知道它有效,您可以通过以下方式恢复:

    $ npm uninstall express
    $ npm install express@3.0.0beta4
    

    机车的主分支正在使用 Express 3.x 测试版,它通常非常可靠。我期待它稳定并推出新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 2015-05-14
      相关资源
      最近更新 更多