加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby on Rails页面最初是空白的,但在刷新时正

发布时间:2020-12-17 02:54:24 所属栏目:百科 来源:网络整理
导读:http://do.starterpad.com – 主页加载正常 尝试单击任何页脚链接(联系人,启动器,启动程序等)并注意页面未加载 单击浏览器中的F5或重新加载按钮,注意它现在加载正常 这很奇怪.有任何想法吗? 我还应该注意,它在我们的开发人员的本地计算机上工作正常,而不是
> http://do.starterpad.com – 主页加载正常
>尝试单击任何页脚链接(联系人,启动器,启动程序等)并注意页面未加载
>单击浏览器中的F5或重新加载按钮,注意它现在加载正常

这很奇怪.有任何想法吗?

我还应该注意,它在我们的开发人员的本地计算机上工作正常,而不是在实时站点中.

解决方法

问题几乎肯定是 Turbolinks的问题

Turbolinks问题的典型定义是,如果它仅在您单击链接时发生(IE“不在刷新时”),它将由Turboinks引起.我在一分钟内解释了原因,但首先,我们来看看问题是什么:

错误

我点击了页脚链接,页面确实变成了空白

有趣的是,它向我展示了< body>该页面的元素已被删除:

这几乎可以肯定是Turbolinks的错误(我将在下面解释).是什么导致了它?

可能有很多原因 – 但是有一个原因是你已经包含了一个< script>直接在你的< body>中标记元件:

我相信这可能是问题所在.这个,或者没有结束你的< / body>标签正确,将导致Turbolinks陷入困境.解决这个问题的方法是制作你的Javascript unobtrusive,让你确保你的所有标签都按顺序排列

所以这就是我如何解决它:

固定

首先,将您的Javascript放入asset pipeline

#app/assets/javascripts/application.js
//Pikwik
var pikwik = function() {
   var pkBaseURL = (("https:" == document.location.protocol) ? "https://statsbox.info/" : "http://statsbox.info/");

    document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));

    try {
       var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php",25);
       piwikTracker.trackPageView();
       piwikTracker.enableLinkTracking();
    } catch( err ) {}
};

$(document).on("page:load ready",pikwik);

混淆JQuery&的道歉JS – 我觉得正确的做法是强调你需要保持它只在请求开始时加载.看看PikWik代码本身,它似乎会在你的页面上附加一个脚本标记 – 这意味着如果你想让它与Turbolinks一起使用,必须在页面加载过程的最开始时完成

这将与您一起确保您拥有< / body>标签正确关闭

Turbolinks

为了让您了解Turbolinks出现问题的原因,您需要考虑它是如何工作的:

Turbolinks makes following links in your web application faster.
Instead of letting the browser recompile the JavaScript and CSS
between each page change,it keeps the current page instance alive and
replaces only the body and the title in the head. Think CGI vs
persistent process.

这基本上意味着每次使用Turbolinks加载页面时,它只会加载< body>新页面的标记,留下< head>完整.

这样做的问题是,如果你在任何< body>中有任何动态脚本.你希望加载的标签,它会导致冲突.这就是我认为在这里发生的事情 – 您可以通过上述建议解决这个问题

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读