Rails 4,Heroku,Zurb Foundation 5

swe*_*let 4 ruby-on-rails heroku zurb-foundation ruby-on-rails-4

我正在开发一个使用Foundation 5的网站,我正在Heroku上托管.昨天依赖于javascript的所有Foundation小部件都停止了在Heroku上工作.在我的情况下,这意味着我的所有模态和我的轨道滑块.它仍然可以在我的本地机器上完美运行.

我总是预编译我的资产(rake资产:预编译)并在使用git推送到Heroku之前提交编译版本.

我已经尝试过在基础版本5.0.2.0和5.0.3.1以及其他一些东西之间进行升级和升级,但我只是难以置身于哪里开始.我对javascript调试也不太好.

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'
Run Code Online (Sandbox Code Playgroud)

-

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');
Run Code Online (Sandbox Code Playgroud)

swe*_*let 5

我终于找到了解决这个问题的方法.基金会似乎没有初始化:

$(function(){ $(document).foundation(); });
Run Code Online (Sandbox Code Playgroud)

在我的application.js中(见上文).当我将它粘贴到applicaton.html的末尾作为脚本标记,如下所示:

<%= javascript_include_tag "application" %>
<script type="text/javascript">$(function(){ $(document).foundation(); });</script>
</div>
Run Code Online (Sandbox Code Playgroud)

它突然开始工作了.这对我来说似乎很疯狂.脚本标记是在application.js之后读取的下一行代码.为什么这会有所不同?只在Heroku上?如果有人知道答案,请评论并阐明一些亮点!