Rails css/js 第二次访问页面时未应用

Rails css/js not being applied when visiting page for second time

我正在尝试为我的 rails 应用程序实现选定的插件和日期选择器,但在访问第二个页面时遇到问题(不是页面重新加载,重新加载页面实际上会刷新插件并将它们带回来),插件会很快出现然后消失,就好像它们正在被重置一样。

我试过搜索这个问题,但我在 rails 上没有真正看到任何东西,我认为这与脚本的服务方式和 bootstrap 的 css/js 文件,但我不太确定,也无法确定它。

我的页面加载时也出现 [缓存未命中],如果这有影响的话。

我尝试过的事情:

这是一些代码,我觉得这是我所缺少的愚蠢和简单的东西。

//= require rails-ujs
//= require turbolinks
//= require jquery.min
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
//= require chosen.jquery.min
//= require bootstrap-datepicker

$(document).ready(function(){

    $('.chosen').chosen(
        {   
            allow_single_deselect: true,
            no_results_text: 'No results matched',
            width: '200px'
        }
    );

    $('.datepicker').datepicker();


});

和application.css

 /*
 *= require_tree .
 *= require_self
 *= require chosen.min
 *= require datepicker
 */

冒犯_form.html.erb

  <div class="field">
    <%= form.label :customer_id %>
    <%# form.text_field :customer_id, id: :order_customer_id %>
    <%= collection_select( :order, :customer_id, @customers, :id, :name,{selected: order.customer_id, prompt: false}, { class: 'chosen' }) %>
  </div>

  <div class="field">
    <%= form.label :date %>
    <%# form.date_select :date, id: :order_date, class: 'datepicker' %>
    <%= form.text_field :date, default: 'Pick a date', class: 'datepicker' %>
  </div>

我认为 turbolinks 可以。您可以通过删除 application.js 文件中的 //= require turbolinks 行并重新启动您的应用程序来确认这一点。 如果您的应用程序中确实需要 turbolinks,请查看下面的内容 link 以解决此问题。

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

希望对您有所帮助。