ruby-on-rails – Ruby on Rails页面最初是空白的,但在刷新时正
>
http://do.starterpad.com – 主页加载正常
>尝试单击任何页脚链接(联系人,启动器,启动程序等)并注意页面未加载 >单击浏览器中的F5或重新加载按钮,注意它现在加载正常 这很奇怪.有任何想法吗? 我还应该注意,它在我们的开发人员的本地计算机上工作正常,而不是在实时站点中. 解决方法
问题几乎肯定是
Turbolinks的问题
Turbolinks问题的典型定义是,如果它仅在您单击链接时发生(IE“不在刷新时”),它将由Turboinks引起.我在一分钟内解释了原因,但首先,我们来看看问题是什么: 错误 我点击了页脚链接,页面确实变成了空白 有趣的是,它向我展示了< body>该页面的元素已被删除: 这几乎可以肯定是Turbolinks的错误(我将在下面解释).是什么导致了它? 可能有很多原因 – 但是有一个原因是你已经包含了一个< script>直接在你的< body>中标记元件: 我相信这可能是问题所在.这个,或者没有结束你的< / body>标签正确,将导致Turbolinks陷入困境.解决这个问题的方法是制作你的Javascript unobtrusive,让你确保你的所有标签都按顺序排列 所以这就是我如何解决它: – 固定 首先,将您的Javascript放入 #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加载页面时,它只会加载< body>新页面的标记,留下< head>完整. 这样做的问题是,如果你在任何< body>中有任何动态脚本.你希望加载的标签,它会导致冲突.这就是我认为在这里发生的事情 – 您可以通过上述建议解决这个问题 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |