Javascript Rails资产在开发中加载两次;制造奇怪的行为
我正在进行一项研究,发现了一些奇怪的行为,我认为这是由于rails资产在开发过程中多次加载造成的 我在Chrome上工作,并标记了Javascript Rails资产在开发中加载两次;制造奇怪的行为,javascript,jquery,ruby-on-rails,ruby,caching,Javascript,Jquery,Ruby On Rails,Ruby,Caching,我正在进行一项研究,发现了一些奇怪的行为,我认为这是由于rails资产在开发过程中多次加载造成的 我在Chrome上工作,并标记了Developer Tools->Network->“disable cache”复选框,这使得js和css资产只加载一次,并使一切都按预期/期望工作 但是,当我取消选中“禁用缓存”框时,资产开始加载多次,typeahead中断,抛出:未捕获的TypeError:$(…)。typeahead不是一个函数 复制步骤: git clone https://github.c
Developer Tools->Network->“disable cache”
复选框,这使得js和css资产只加载一次,并使一切都按预期/期望工作
但是,当我取消选中“禁用缓存”
框时,资产开始加载多次,typeahead中断,抛出:未捕获的TypeError:$(…)。typeahead不是一个函数
复制步骤:
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线程,但还没有找到一个可行的解决方案。如果其他人能就这个问题提供任何建议,我将不胜感激 typeahead失败的原因是我通过app/assets/javascripts/application.js
文件导入它:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require twitter/typeahead
//= require_tree .
我用的是
。更糟糕的是,typeahead include调用正在导入typeahead.bundle.js
0.11.1版,我安装了gemtwitter引导rails
0.10.5版
我删除了所有的
,从我的/assets
目录中删除了typeahead.bundle.js
文件,并且$(…)。typeahead不是一个函数
错误已经消失。我把这个问题留在这里,以防对别人有帮助 我唯一一次使用rails javascript双重加载是因为application.js
的编译版(但没有摘要标记)位于public/assets
中。值得删除public/assets/application.js
,如果它存在,它可能会解决您的问题。谢谢@robomc;我没有public/assets
目录:/