我正在使用在Heroku上托管的Foundation 5开发网站。昨天,所有依赖javascript的Foundation小部件都停止在Heroku上运行。就我而言,这意味着我所有的模态和轨道滑块。它仍然可以在我的本地计算机上正常运行。
在使用git推送到Heroku之前,我总是会预编译我的资产(rake asset:precompile)并提交已编译的版本。
我已经尝试过在Foundation版本5.0.2.0和5.0.3.1以及其他一些东西之间进行升级,但是我只是从何处着手。我也不擅长使用javascript debuggning。
Production.rb
# Disable Rails's static asset server (Apache or nginx will already do this).
config.serve_static_assets = true
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = true
# Generate digests for assets URLs.
config.assets.digest = true
# Version of your assets, change this if you want to expire all your assets.
config.assets.version = '1.0'
--
application.js
//= require jquery
//= require jquery_ujs
//= require jquery.touchcarousel-1.2.min
//= require foundation
//= require jquery.ui.button
//= require jquery.tap.min
//= require modernizr
//= require jquery-fileupload/basic
//= require_tree .
$(function(){ $(document).foundation(); });
//$('#TjuvkikModal').foundation('reveal', 'open');
//$('#ExempelobjektModal').foundation('reveal', 'open');
我终于找到了解决这个问题的方法。似乎未通过以下方式初始化Foundation:
$(function(){ $(document).foundation(); });
在我的application.js中(请参见上文)。当我将其作为脚本标签粘贴到applicaton.html的末尾时,如下所示:
<%= javascript_include_tag "application" %>
<script type="text/javascript">$(function(){ $(document).foundation(); });</script>
</div>
它突然开始工作。在我看来这很疯狂。脚本标记是在application.js之后读取的下一行代码。为什么这会有什么不同?而且仅在Heroku上?如果有人知道答案,请发表评论并阐明观点!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句