繁体   English   中英

Rails资产在开发中加载了两次; 产生奇怪的行为

[英]Rails assets loading twice in development; creates strange behavior

我正在开发Rails应用程序,并且看到奇怪的行为,我认为这是由于Rails资产在开发中多次加载而引起的。

我在Chrome中工作,并选中了Developer Tools -> Network -> "disable cache"复选框,这使得js和CSS资源仅加载一次,并使所有工作按预期/期望的方式进行。

但是,当我取消选中"disable cache"复选框时,资产开始多次加载,并且typeahead中断,抛出: 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线程,但尚未找到可行的解决方案。 我将非常感谢其他人在这个问题上可以提供的任何建议!

提前失败的原因是因为我通过app/assets/javascripts/application.js文件导入了它:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require twitter/typeahead
//= require_tree .

我正在使用<%= javascript_include_tag 'typeahead' %> 更糟糕的是,在预输入包括呼叫被导入typeahead.bundle.js版本0.11.1,我已经安装了宝石twitter-bootstrap-rails版本0.10.5。

我删除了所有<%= javascript_include_tag '{package}' %> ,从我的/assets目录中删除了typeahead.bundle.js文件,并且$(...).typeahead is not a function错误。 我将在这里留下这个问题,以免对他人有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM