我正在尝试在我的rails 4应用程序中使用Foundation 5 Orbit滑块,它在开发环境中完美运行,但在Heroku上没有生产。当我使用Chrome的开发人员工具查看正在发生的事情时,它说它无法找到foundation.js。在页面本身上显示第一个图像,但导航控件和下一个图像不显示。
我通过'foundation-rails'gem(5.0.2)使用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和application.html的主体中删除基础JS引用,但似乎没有工作。< / p>
答案 0 :(得分:1)
您如何预编制资产?根据{{3}}您需要在本地运行
$ bundle exec rake assets:precompile
然后推送到heroku,或者(这是我推荐和使用的,我自己),通过运行此命令启用Heroku's Rails Asset Pipeline docs:
$ heroku labs:enable user-env-compile -a myapp
这将告诉Heroku每次推送到Heroku时都会为您预编译资产(这会减少您签入的代码)。
此外,如果您通过application.js包含它们,则不需要javascript_include_tags用于jQuery,也不需要Foundation。
答案 1 :(得分:0)
除了轨道以外还有其他一切为基础工作吗?如果没有,尝试从html头删除modernizr脚本,将modernizr文件移动到config / vendor / javascript,在application.js文件中的树之前的需求列表中添加modernizr,预编译资产并再次推送到heroku。为我工作