1

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

我的 app.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 缓存。因为每次点击都会迫使浏览器下载新的资产包。

=============

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

4

1 回答 1

1

你在哪里加载

<%= javascript_include_tag "application" %>

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

于 2013-10-10T01:44:40.113 回答