我正在使用 Foundation 5 开发一个网站,该网站托管在 Heroku 上。昨天,所有依赖于 javascript 的 Foundation 小部件都停止在 Heroku 上运行。就我而言,这意味着我所有的模态和 rails slider 。它在我的本地计算机上仍然可以完美运行。
我总是预编译我的 Assets (rake asset:precompile)并在使用 git 推送到 Heroku 之前提交编译后的版本。
我已经尝试过在 Foundation 版本 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');
最佳答案
我终于找到了解决这个问题的方法。看来 Foundation 并未通过以下方式初始化:
$(function(){ $(document).foundation(); });
在我的 application.js 中(见上文)。当我将它作为脚本标记粘贴到 application.html 的末尾时,如下所示:
<%= javascript_include_tag "application" %>
<script type="text/javascript">$(function(){ $(document).foundation(); });</script>
</div>
它突然开始工作了。这对我来说似乎很疯狂。 script 标签是在 application.js 之后读取的下一行代码。为什么这会有什么不同呢?并且仅在 Heroku 上?如果有人知道答案,请发表评论并提供一些线索!
关于ruby-on-rails - Rails 4、Heroku、Zurb 基金会 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21278001/