【问题标题】:Assets only are being served on page refresh仅在页面刷新时提供资产
【发布时间】:2019-08-21 23:10:57
【问题描述】:

我的 javascript 文件有问题,似乎它们在我的应用程序的每个重定向中都没有正确加载。我需要刷新才能加载它们。

我正在使用 rails 5 和 turbolinks 5。

这就是我的 application.html.erb 资产标签助手的样子

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

这是我的 application.js

//= require rails-ujs
//= require jquery.min.js
//= require activestorage
//= require turbolinks
//= require_tree .
//= require bootstrap.min.js
//= require bootstrap-datepicker.js
//= require circle-progress.min.js
//= require html5shiv.min.js
//= require jquery.appear.js
//= require jquery.appear.min.js
//= require jquery.countTo.js
//= require jquery.easing.1.3.js
//= require jquery.flexslider-min.js
//= require jquery.magnific-popup.min.js
//= require jquery.stellar.min.js
//= require jquery.waypoints.min.js
//= require owl.carousel.min.js
//= require respond.min.js

我从 vendor/assets/javascripts

获得我所有的库

【问题讨论】:

  • 你看过stackoverflow.com/questions/36110789/…。典型的 $(document).ready() 事件不适用于 Turbolinks。
  • 是的,似乎是解决方案,但我无法更改所有库的代码。现在我从我的应用程序中删除了 turbolink。

标签: ruby-on-rails asset-pipeline turbolinks


【解决方案1】:

Turbolinks 5 - 要正确加载 javascript,请使用以下事件:

$(document).on('turbolinks:load', function () {
    // jquery javascript
    // your code snippet here

});


document.addEventListener('turbolinks:load', function(event) {
    // vanilla javascript
    // your code snippet here
});

【讨论】:

    猜你喜欢
    • 2021-11-25
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2016-05-21
    相关资源
    最近更新 更多