【问题标题】:Foundation 5 JS not working in Rails appFoundation 5 JS 在 Rails 应用程序中不起作用
【发布时间】:2022-02-07 17:46:44
【问题描述】:

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

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

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

在页面上,提示链接的样式正确,但是提示功能本身不起作用,会退回到系统alt文本,如下图:

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

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

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

我该如何调试呢?有什么我可以在 JS 控制台中运行的东西来弄清楚发生了什么吗?

【问题讨论】:

  • 你包括modernizr吗? javascript_include_tag "vendor/modernizr"

标签: javascript ruby-on-rails zurb-foundation-5


【解决方案1】:

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

基本上,我最近将 Foundation 4 升级到 Foundation 5,但我没有意识到,但正在服务的 SCSS 资产仍然是 Foundation 4 的资产,而不是 Foundation 5 的资产。我在重新启动计算机时意外发现了这一点突然间,工具提示起作用了。

如果其他人有这个问题,我会尝试通过运行命令 rake tmp:clear 来擦除 Rails 缓存,看看是否能解决问题。

【讨论】:

    【解决方案2】:

    是的,你可以添加

    config.serve_static_files = true
    

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

    【讨论】:

    • 这是不正确的 - serve_static_assets 已弃用,正确的设置是 serve_static_files
    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 2018-06-09
    • 2016-05-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    相关资源
    最近更新 更多