我在 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 班轮来解决。