Rails respond_to格式 - 需要扩展名.js吗?

时间:2010-12-10 20:23:41

标签: javascript ruby-on-rails routes heroku

我正在捕获链接点击事件并通过ajax转发它们,特别是jquery的getScript。

在开发过程中,一切都可以正常响应格式

respond_to do |format|
  format.html {
    #by default renders show.html.haml 
  }
  format.js {
    #by default renders show.js.erb
  }
end

这种行为不会在heroku的生产中发生,并且总是返回html文件。如果我添加文件扩展名并为路由定义格式识别,那么这可以正常工作,但我认为这不是必要的吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果有人遇到这个,我会解释我做错了什么。

我正在利用heroku的varnish实现来加速应用程序。发生的事情是先前生成的动态网页是从varnish下载然后javascript调用home到同一个url来检查页面更新。这大大改善了页面响应时间,但非js用户和搜索引擎可能会查看稍微陈旧的内容。

看起来varnish不区分接受标头,我返回了之前缓存的html。为了解决这个问题,我只是在ajax请求中添加了一个时间戳参数。