【发布时间】:2016-06-11 17:07:49
【问题描述】:
我正在处理 rails app 并看到奇怪的行为,我认为这是由于在开发过程中多次加载 Rails 资产引起的。
我在 Chrome 中工作,并标记了 Developer Tools -> Network -> "disable cache" 复选框,这使得 js 和 css 资产只加载一次,并且一切都按预期/期望工作。
但是,当我取消选中 "disable cache" 框时,资产开始多次加载,并且输入中断,抛出:Uncaught TypeError: $(...).typeahead is not a function。
重现步骤:
git clone https://github.com/duhaime/chalkboard.git
cd chalkboard
rake sunspot:solr:start
rake db:drop db:create db:migrate db:seed
rake sunspot:solr:reindex
rails s
# visit localhost:3000 and enable/disable cache (then refresh) in Chrome
我相信可以通过禁用 Rails 中的缓存(而不是浏览器客户端)来解决此错误,但我想问一下是否有适当的方法可以在不禁用缓存的情况下解决这种情况。我已经阅读了关于这个问题的许多其他 SO 线程,但还没有找到可行的解决方案。如果其他人可以就这个问题提供任何建议,我将不胜感激!
【问题讨论】:
-
我唯一一次有 Rails javascript 双重加载,这是因为
public/assets中有一个已编译(但不是摘要标记)版本的application.js。如果存在public/assets/application.js,则值得删除它,它可能会解决您的问题。 -
谢谢@robomc;我没有
public/assets目录:/
标签: javascript jquery ruby-on-rails ruby caching