【问题标题】:sometimes javascript run perfect and sometimes not in ruby on rails 4有时 javascript 运行完美,有时在 ruby​​ on rails 4 中不运行
【发布时间】:2014-04-23 20:18:06
【问题描述】:

我在日历中使用了 datepicker,它显示完美但没有显示箭头按钮来更改月份。有时还会出现这样的错误:

ActionController::RoutingError (No route matches [GET] "/assets/images/ui-icons_ef8c08_256x240.png")

datepicker.js

$(document).ready(function(){
  $('[data-behaviour~=datepicker]').datepicker();
});

CSS link

对不起,问题太长了,如果我错过了什么,请告诉我。

提前致谢

编辑: 我观察到当我删除 public/assets 目录然后输入 rake assets:precompile 这次错误没有显示但箭头仍然没有显示。

【问题讨论】:

    标签: javascript ruby-on-rails-4 datepicker sprockets turbolinks


    【解决方案1】:

    看起来像是默认添加到 rails 4 的 turbolinks 问题。在 turbolinks 中 $(document).ready 并不总是触发。您可以在此处查看有关 turbolink 的更多信息以及如何使用它们的一些建议railscast 或者您可以添加到一些链接

    data: { no_turbolink: true }
    

    如果您不需要它们,您也可以从 gemfile 中删除 turbolinks。还要检查你是否有 ui-icons_ef8c08_256x240.png

    /assets/images/
    

    【讨论】:

    • 是的,我猜 turbolinks 在我读到这篇文章的地方会引起问题。但是兄弟我的图像存在于 /assets/images/
    • 我也尝试 rake assets:precompile
    • 你能在使用这张图片的地方添加一个css吗?
    • Turbolinks 负责奇怪地工作的 javascript。图标问题与 css 中图像的错误路径或 sprockets application.css 中的某些要求有关
    • 那我该怎么办?
    【解决方案2】:

    您也可以按照此处的说明进行操作。基本上你必须告诉 javascript 也在 page:load 上执行。

    感谢Meltemi

    咖啡:

    ready = ->
    
      ...your coffeescript goes here...
    
    $(document).ready(ready)
    $(document).on('page:load', ready)
    

    Javascript:

    var ready;
    ready = function() {
    
      ...your javascript goes here...
    
    };
    
    $(document).ready(ready);
    $(document).on('page:load', ready);
    

    Rails 4: how to use $(document).ready() with turbo-links

    【讨论】:

      【解决方案3】:

      首先,安装jquery-turbolinks gem。然后,不要忘记将包含的 Javascript 文件从 application.html.erb 的正文末尾移动到其 <head>。

      作为described here,如果您出于速度优化的原因将应用程序javascript 链接放在页脚中,则需要将其移动到标签中,以便它在标签中的内容之前加载。这个解决方案对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多