0

我有一个简单的博客应用程序,我把它放在 Heroku 的免费 5GB 空间上。当我发送获取请求和发布请求时,响应时间很快,我得到了响应。

我的 put 请求也发生了同样的事情(在我的应用程序中指定的标准 302 重定向,在我的本地服务器上完美运行)。但是,我的页面直到几分钟后才会更新新信息,有时是几分钟(~10 - 20 分钟)之后的实际页面。

更新我查看了我的 heroku rails 控制台,似乎信息在那里更新了。我相信这可能是浏览器/缓存问题,但我不太确定为什么?

我不太确定为什么会这样。这是我的文章控制器中的更新代码。

def update
   @article = Article.find(params[:id])

    respond_to do |format|
    if @article.update_attributes(params[:article])
      format.html { redirect_to(@article, :notice => 'Article was successfully updated.') }
      format.xml  { head :ok }
    else
      format.html { render :action => "edit" }
      format.xml  { render :xml => @article.errors, :status => :unprocessable_entity }
    end
  end
end

根据要求,这是我的尾日志的 PUT 请求部分。

2013-06-19T01:13:01.124408+00:00 app[web.1]: Started PUT "/articles/5-Literary-
 Compositions-" for 99.232.11.181 at 2013-06-19 01:13:01 +0000

2013-06-19T01:13:01.445438+00:00 heroku[router]: at=info method=POST path=/articles/5-
 Literary-Compositions- host=hidden-taiga-5779.herokuapp.com fwd="99.232.11.181" dyno=web.1 
connect=2ms service=516ms status=302 bytes=138


2013-06-19T01:13:01.443470+00:00 app[web.1]: Processing by ArticlesController#update as HTML

2013-06-19T01:13:01.443470+00:00 app[web.1]:  #post information was in here, large post


2013-06-19T01:13:01.443470+00:00 app[web.1]: 
Redirected to http://hidden-taiga-5779.herokuapp.com/articles/5-Literary-Compositions-


2013-06-19T01:13:01.443470+00:00 app[web.1]: Completed 302 Found in 279ms (ActiveRecord: 71.2ms)
4

2 回答 2

1

想添加到您的答案中,但我相信您可以cache_action :show在控制器上使用,这只是正确设置的问题。我确实注意到了使用 Memcache 构建 Rails 3 应用程序。不确定您是否阅读过这篇文章,但这向您展示了如何使用 heroku MemCachier 附加组件设置您的应用程序。因为安装将带您准确了解您需要了解的内容。但是有些事情确实告诉我您可能没有安装 Memcahcier 插件并对其进行配置。如果你没有这样做,那么一定要cached_action :show放回你的 blog_controller 并安装插件并检查它的结果。

于 2013-06-19T17:02:18.733 回答
0

我发现在博客控制器中有一行:

cached_action :show

从文档ActionController

动作缓存类似于页面缓存,因为响应的整个输出都被缓存了,但与页面缓存不同的是,每个请求仍然通过 Action Pack。这样做的主要好处是过滤器在提供缓存之前运行,这允许对是否允许某人执行此类操作进行身份验证和其他限制。

我已经把它拿出来了,它又可以正常工作了。谢谢您的帮助。希望这篇文章也对其他人有所帮助。

于 2013-06-19T03:01:39.580 回答