
>尝试单击任何页脚链接(联系人,启动器,启动程序等)并注意页面未加载
>单击浏览器中的F5或重新加载按钮,注意它现在加载正常
这很奇怪.有任何想法吗?
我还应该注意,它在我们的开发人员的本地计算机上工作正常,而不是在实时站点中.
解决方法 问题几乎肯定是 Turbolinks的问题Turbolinks问题的典型定义是,如果它仅在您单击链接时发生(IE“不在刷新时”),它将由Turboinks引起.我在一分钟内解释了原因,但首先,我们来看看问题是什么:
错误
我点击了页脚链接,页面确实变成了空白
有趣的是,它向我展示了< body>该页面的元素已被删除:
这几乎可以肯定是Turbolinks的错误(我将在下面解释).是什么导致了它?
可能有很多原因 – 但是有一个原因是你已经包含了一个< script>直接在你的< body>中标记元件:
我相信这可能是问题所在.这个,或者没有结束你的< / body>标签正确,将导致Turbolinks陷入困境.解决这个问题的方法是制作你的Javascript unobtrusive,让你确保你的所有标签都按顺序排列
所以这就是我如何解决它:
–
固定
首先,将您的JavaScript放入asset pipeline:
#app/assets/JavaScripts/application.Js//Pikwikvar 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>中有任何动态脚本.你希望加载的标签,它会导致冲突.这就是我认为在这里发生的事情 – 您可以通过上述建议解决这个问题
总结以上是内存溢出为你收集整理的ruby-on-rails – Ruby on Rails页面最初是空白的,但在刷新时正确加载全部内容,希望文章能够帮你解决ruby-on-rails – Ruby on Rails页面最初是空白的,但在刷新时正确加载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)