我在app / assets / javascripts / expand.js
中写了这个函数$( document ).ready(function() {
var open = $('.toggle-expand'),
a = $('ul').find('a');
open.click(function(e){
e.preventDefault();
var $this = $(this),
speed = 500;
if($this.hasClass('active') === true) {
$this.removeClass('active').next('.expandable').slideUp(speed);
} else if(a.hasClass('active') === false) {
$this.addClass('active').next('.expandable').slideDown(speed);
} else {
a.removeClass('active').next('.expandable').slideUp(speed);
$this.addClass('active').next('.expandable').delay(speed).slideDown(speed);
}
});
});
该脚本在本地工作正常并且按预期运行,但是当我部署到Heroku时它完全停止工作。
供参考,以下是脚本正在执行的HTML:
<ul>
<li>
<a href="#" class="toggle-expand"><h2>text here</h2></a>
<div class="expandable">
...more stuff here
</div>
</li>
...more li tags here
</ul>
调试我已经完成了:
我已经能够通过将development.rb中的一行更改为config.assets.debug = false
来复制我的开发环境中的问题。我对rails没有足够的了解,可以从中获得任何见解。
我使用RAILS_ENV=production bundle exec rake assets:precompile
预编译了所有资产。然后推了推。
之后无法正常工作我在git rm -r public/assets/
当这不起作用时,我使用chrome或firefox上的开发人员工具来查看我的生产环境中加载的所有uglified js。我看到我的函数似乎已被加载,但后来我没有看到我期望的功能,所以我不知道那里发生了什么。
要查看我看到的内容,您可以转到https://www.shopperbot.com/about并查看资源https://www.shopperbot.com/assets/application-db55113ff25f4decb133ccb74aa98298822de2381cddc0ae3fa8c03b65180dd0.js
这是一个巨大的文件,因此您需要搜索可展开的单词。该词对于有问题的功能是唯一的。
我对rails很新,所以我不知道从哪里开始。我可以尝试改变我的js的位置,但我认为这不是理想的。有没有人有任何建议?
因为这一切在我当地的环境中运作良好...我怀疑我正在制作一些初学者的错误,可以通过我尚未找到的魔法1衬里修复。
答案 0 :(得分:1)
正如Jan Klimo在评论中指出的那样,我删除了谷歌地图API,但仍然有功能期望API存在。这些错误导致我的脚本无法运行。
解决方案是删除对已删除API的所有引用。