在 Heroku 上找不到我的 /app/assets 文件夹中Isotope ( http://isotope.metafizzy.co/ )使用的两个 Javascript 文件时遇到问题。在本地开发模式下,可以找到它们并且一切正常。但是一旦在 Heroku 上进入生产模式,这两个文件就不存在了。我在 Stack Overflow 上阅读了很多类似的帖子,并阅读了很多关于资产管道的内容,但我似乎仍然无法弄清楚是什么导致了问题。
这是我所知道的:
1) 在我的 /app/assets 文件夹中找到其他 Javascript 文件,包括 Bootstrap。
2) 如果我 rake assets:precompile -trace,我不会收到任何错误,而且一切看起来都很正常。
3) 在我的 production.rb 文件中,config.serve_static_assets = true。很多人似乎将其从 false 转换为 true 并解决了他们的问题,但在这一点上,我不确定应该是哪个。
4) 这个问题可能是由于有问题的同位素 Javascript 文件。在我的一个 html.erb 文件中,我根据开发人员的文档添加了一些与 Isotope 相关的 Javascript,如下所示:
<script src="../assets/jquery-1.7.1.min.js"></script>
<script src="../assets/jquery.isotope.min.js"></script>
<script>
$(function(){
var $container = $('#eventcontainer');
$container.imagesLoaded(function(){
$container.isotope({
layoutMode : 'spineAlign',
spineAlign: {
gutterWidth: 30
},
itemSelector : '.element',
});
});
....... more here that works in dev mode...
</script>
我认为问题来自这两行:
<script src="../assets/jquery-1.7.1.min.js"></script>
<script src="../assets/jquery.isotope.min.js"></script>
因为如果我删除它们,我的应用程序即使在开发中运行也找不到 Javascript 文件。但是,它们包含在我的 application.js 文件中:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require jquery-1.7.1.min
//= require jquery.isotope.min
//= require bootstrap-datepicker
//= require bootstrap-timepicker
//= require_tree .
//= require_self
所以我不确定为什么找不到它们或如何解决问题。我对 Rails 尤其是 Heroku 还很陌生,所以我非常感谢任何帮助。如果您需要更多信息或查看任何其他文件,请告诉我。
谢谢你的时间!