Foundation 5 JS 在 Rails 应用程序中不工作

Foundation 5 JS not working in Rails app

我正在尝试让 Foundation 5 javascript 组件(其中任何一个)在 Rails 4.2.0 应用程序中工作,但我尝试过的任何东西似乎都不起作用。我正在使用 foundation-rails gem,并已遵循 documented steps to install it.

为了测试 Foundation JS 是否有效,我插入了基本的 HTML 工具提示,解释 here,以显示工具提示 link:

<span data-tooltip aria-haspopup="true" class="has-tip" title="Tooltips are awesome, you should totally use them!">extended information</span>

在页面上,工具提示 link 的样式正确,但是,工具提示功能本身不起作用并退回到系统替代文本,如下所示:

我的第一个猜测是我包含 Foundation JS 文件的方式有问题,但是,我仔细检查了我应用程序中页面的源代码,它们似乎都在那里:

我还验证了 $(document).foundation() 被包含在 Rails 应用程序的 application.js:

Foundation 的 JS 组件仍然无法运行,即使我将 $(function(){ $(document).foundation(); }); 放在它影响的元素之前的脚本标记中。

我该如何调试它?我可以在 JS 控制台中 运行 弄清楚发生了什么吗?

事实证明,我在应用赏金后能够立即解决这个问题!这个问题似乎与 Rails 如何在开发环境中缓存资产有关(this article 对此做了一些说明)。

基本上,我最近将Foundation 4升级到Foundation 5,我没有意识到,但是服务的SCSS资产仍然是Foundation 4的资产,而不是Foundation 5的资产。我重新启动时无意中发现了这一点我的电脑和工具提示突然之间工作了。

如果其他人遇到此问题,我会尝试通过 运行 命令 rake tmp:clear 擦除 rails 缓存,看看是否可以解决问题。

是的,你可以添加

config.serve_static_files = true

在你的 development.rb 配置文件中确保你没有预编译,这使得 rails 每次都从原始位置加载资产,这反映了即时所做的更改。