2014-02-19 43 views
1

我想在我的rails 4应用程序中使用基金会5轨道滑块,它在开发环境中完美工作,但在Heroku上不能生产。当我使用Chrome的开发者工具查看发生了什么时,它说找不到foundation.js。在页面上显示第一张图片,但导航控件和下一张图片不显示。基金会轨道滑块不在生产

我通过'foundation-rails'gem(5.0.2)使用Foundation。我试过手动将foundation.js文件放入vendor/assets/javascripts文件夹以及app/assets/javascripts文件夹,但都不起作用。

我applications.js文件看起来像这样:

//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 
//= require foundation 
$(function(){ $(document).foundation(); }); 

,我有我的application.html头以下:

<%= javascript_include_tag "application" %> 
<%= javascript_include_tag "vendor/modernizr" %> 
<%= javascript_include_tag "//code.jquery.com/jquery-1.10.2.min.js" %> 

和身体:

<%= javascript_include_tag "foundation" %> 

我已经尝试过多种方式,例如从头部移除应用程序js引用并将其放入主体,移除来自application.js的基础JS引用和application.html的主体,但没有一个可以工作。

回答

1

你如何预编译你的资产?据Heroku's Rails Asset Pipeline docs你要么需要在本地运行

$ bundle exec rake assets:precompile 

,然后推到Heroku的,或(这是我的建议和使用,我自己),运行以下命令启用Heroku Labs: user-env-compile

$ heroku labs:enable user-env-compile -a myapp 

这会告诉Heroku每次推到Heroku时都会预编译您的资产(这会削减您签入的代码)。

此外,如果通过的application.js包括他们,你不需要jQuery的,也不基金会javascript_include_tags。

0

是除了轨道之外的其他基础工作?如果没有,尝试从html头中删除modernizr脚本,将modernizr文件移动到config/vendor/javascript中,在application.js文件中的树之前的require列表中添加modernizr,预编译您的资源并再次推送到heroku。为我工作