如何在每次单击链接以加载新页面时停止加载其他资产

How do I stop loading additional assets each time I click on a link to load a new page?

本文关键字:加载 新页面 其他 链接 单击      更新时间:2023-09-26

>我有一个奇怪的问题,当我点击项目中的链接时,我得到了一个额外的资源包,每次点击 = +1 个额外的资源包。 10 次点击 = 资产的 10 个副本。(10 张图像,10 个 CSS 文件 10 个 JS 文件而不是 1 个(。我所有的jquery事件触发了10次。我什至不知道在哪里寻找解决方案。我将不胜感激任何帮助。

我的应用.js

    //= require jquery
    //= require jquery_ujs
    //= require foundation
    //= require turbolinks
    //= require jquery.easing.1.3.js
    //= require_tree .
    $(function(){
        $(document).foundation();
    });

    $(document).ready(function () {
        var $main_container = $("#main_container");
        var $menu_link = $('#menu-link');
        var $s_menu = $("#s-menu");
        $menu_link.click(function () {
            $main_container.animate({"margin-left": "-200px"}, 100);
            $s_menu.animate({"margin-right": "0"}, 100);
        });
        $(".container-fluid").on("click", function(){
            $main_container.animate({"margin-left": "0"}, 100);
            $s_menu.animate({"margin-right": "-200px"}, 100);
        });

        $('input[type="submit"]').focus(function(){
            $(this).blur();
        });
    });

=

===========

经过一些实验(我从我的项目中删除了所有 js(,在我看来,问题出在 rails 缓存上。因为每次点击都会迫使浏览器下载新的资产包。

=

===========我

发现我的问题出在涡轮链接 gem 中,它每次都会缓存资产,然后下载新的资产包。但是我该如何解决这个问题呢?

你在哪里加载

<%= javascript_include_tag "application" %>

如果您在正文中的页面底部加载它,turbolinks 会刷新整个正文标签,这可能会导致您在单击链接时加载多个资产。将其移动到头部的顶部。