【问题标题】:Express.js timeouts requests to static filesExpress.js 超时对静态文件的请求
【发布时间】:2014-02-19 00:06:42
【问题描述】:

我已经为此苦苦挣扎了好几个星期了——出于某种原因,Express 在启动后几个小时都可以正常工作,然后它开始忽略对静态文件的请求。 它看起来像这样:

GET / 304 153ms
GET /js/bootstrap.min.js 200 120000ms
GET /img/guide/0.png 200 120000ms
GET /img/guide/1.png 200 120000ms
GET /img/guide/2.png 200 120000ms

当我查看 Chrome 的资源浏览器时,由普通 app.get() 函数处理的 / 页面正常工作并发送到客户端 - 静态文件不是。

从客户端一侧,页面加载 2 分钟,显示空白,然后显示没有任何 CSS 样式或脚本的内容(可预测)。

我不知道我做错了什么,即使是我发现的最简单的 Express 示例也有这个问题,而且我没有看到它在任何地方发布。可能是中间件的顺序,我真的不知道了……

我希望这是微不足道的事情,而我只是愚蠢/盲目;这是代码的一部分:

app = express()
app.set('views', __dirname + '/views')
app.set('view engine', 'jade')
app.use(express.logger('dev'))
app.use(express.cookieParser())
app.use(express.bodyParser())
app.use(express.session({
    key: 'express.sid',
    secret: 'wewillchangethislater',
    store: sessionStore
}))
app.use(passport.initialize())
app.use(passport.session())
app.use(function(req, res, next) {
    res.locals.isAjax = false
    res.locals.user = req.user
    next()
})
app.use(app.router)
app.use(express.static(__dirname + '/public'))

我也看到它发生在更简单的代码上:

var express = require('express')
var app = express()

app.set('views', __dirname + '/views')
app.set('view engine', 'jade')
app.use(express.logger('dev'))
app.use(function(req, res, next) {
    res.locals.isAjax = false
    next()
})
app.use(express.static(__dirname + '/public'))

*some routes here*

app.listen(9999)

其余代码在这个完全损坏的仓库中:https://github.com/Maxorq/Mikuia/blob/master/www.js 在这些情况下,我发现唯一有帮助的是重新启动,这不太有趣:/

【问题讨论】:

    标签: javascript node.js http express connect


    【解决方案1】:

    由于配置原因,我在树脂服务器上看到了这种行为

    也许不一样,但可能会为您指明正确的方向

    https://stackoverflow.com/questions/22325309/css-and-js-files-hold-the-http-connection-until-timeout-on-resin-4

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 2012-05-13
      • 2017-05-16
      • 2014-10-26
      • 2020-10-26
      相关资源
      最近更新 更多