2014-01-22 96 views
4

我正在使用我在Heroku上托管的Foundation 5开发一个站点。昨天,所有依赖于JavaScript的Foundation小工具停止了Heroku的工作。在我的情况下,这意味着我所有的模式和我的轨道滑块。它仍然在我的本地机器上完美运行。Rails 4,Heroku,Zurb基金会5

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

我已经尝试了基础版本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' 

-

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'); 
+0

我看到你添加了jquery.turbolinks,但没有turbolinks。尝试删除jquery.turbolinks包括,它可能会弄乱你的jquery – Cremz

+0

你是对的 - 我删除了Turbolinks,所以它不会妨碍,但我错过了那一个。谢谢 - 但仍然无法在Heroku上工作。 – swelet

+0

我在'application.js'中看不到'require_self'。是'$(document).foundation();'有没有被调用? –

回答

5

我终于找到了解决这个问题。看来基金会没有初始化:

$(function(){ $(document).foundation(); }); 

在我的application.js(见上面)。当我粘贴成applicaton.html结束的脚本标签,像这样:

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

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