我有一个简单的博客应用程序,我在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)
答案 0 :(得分:1)
想要添加到你的答案,但我相信你可以在你的控制器上拥有cache_action :show
,这只是正确设置它的问题。我注意到Building a Rails 3 Application with Memcache。不确定您是否阅读了此内容,但这将向您展示如何使用heroku MemCachier附加组件设置您的应用程序。因为installation会引导您完全了解您需要知道的内容。但有些事情告诉我您可能没有安装Memcahcier插件并对其进行配置。如果你没有这样做,那么一定要把cached_action :show
放回你的blog_controller并安装附加组件并检查它的结果。
答案 1 :(得分:0)
我发现博客控制器中有一行:
cached_action :show
来自文件ActionController
动作缓存类似于页面缓存,因为缓存了响应的整个输出,但与页面缓存不同,每个请求仍然通过Action Pack。这样做的主要好处是过滤器在提供缓存之前运行,这允许对是否允许某人执行此类操作进行身份验证和其他限制。
我已经把它拿出来了,它再次正常工作。谢谢您的帮助。希望这篇文章能够帮助其他人。