Rails 3.2 HTTP流失败(Windows上的瘦服务器)

时间:2013-03-02 01:21:04

标签: ruby-on-rails ruby-on-rails-3 http http-headers streaming

我正在尝试将我的网页设为流,但我收到以下错误:

错误321(net :: ERR_INVALID_CHUNKED_ENCODING):未知错误

我已尝试使用Chrome,IE和Firefox。

def login
    redirect_to_stored and return if session[:user]
    if request.post?
        if session[:user] = User.authenticate(params[:login], params[:password])
            redirect_to_stored(notice: 'Login successful') and return
        else
            flash_now :alert => "Login unsuccessful"
        end
    end
    on_document_load "$('#login').focus();"
    render :layout => 'login', :stream => true
end

我收到以下回复标题:

Cache-Control:must-revalidate, private, max-age=0
Connection:close
Content-Type:text/html; charset=utf-8
Server:thin 1.5.0 codename Knife
Set-Cookie:_rails3.website_session=biglongstringhere; path=/; expires=Sat, 02-Mar-2013 01:44:38 GMT; HttpOnly
Set-Cookie:__profilin=p%3Dt; path=/
Set-Cookie:__profilin=p%3Dt; path=/
Transfer-Encoding:chunked
X-MiniProfiler-Ids:[a bunch of stuff in here (this isn't the actual text)]
X-Request-Id:695da38a40064d87cbd463c83fef0a88
X-Runtime:0.034002
X-UA-Compatible:IE=Edge

查看Chrome的检查员,文件“登录”会将状态显示为“失败”,但点击该状态时,状态代码为200 OK。我注意到的另一件事是,如果我在原始渲染调用之前放入以下内容,则响应显示OK,但Chrome检查器仍然认为状态响应出错(如第1次)。在身体的其他部分有机会被送出之前,连接是否被关闭?我不明白这里有什么不对。

render(:text => 'test', :stream => true) and return

作为附录,rails日志不会显示任何错误。它使一切都很好。

1 个答案:

答案 0 :(得分:0)

我有两台服务器;一个在工作,一个在家里。家中的那个不使用nginx或任何下游应用程序与Thin通信。瘦本身会产生错误......但是在前面使用nginx,文件会得到适当的服务。奇怪的是,当我的rails应用程序中没有明确启用任何流媒体时,文件仍然作为内容类型提供:chunked。

哎呀,即使我的公共网站也被用作chunked ......但是我从来没有在Rails中启用流媒体......所以这必须意味着最终的结果是分块但不是html的实际渲染。那我怎么能真正测试呢?