Javascript Highlight.js和Rails,页面需要刷新-是否再次使用TurboLink?

Javascript Highlight.js和Rails,页面需要刷新-是否再次使用TurboLink?,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我的问题很简单: application.js index.html.erb Highlight.js和default.css.scs位于assets文件夹中,如果我刷新页面,一切都会成功。我试着在application.js中注释掉turbolinks行,一切正常。我如何通过保持TurboLink使其工作 这几乎是我在创建的每个项目中都遇到的问题。一个解决方案可能是在链接标签中包含数据no turbolink,该标签打开了我有问题的视图,但它是一个主页和其他不依赖于单个链接的主页。最后,我更喜

我的问题很简单:

application.js

index.html.erb

Highlight.js和default.css.scs位于assets文件夹中,如果我刷新页面,一切都会成功。我试着在application.js中注释掉turbolinks行,一切正常。我如何通过保持TurboLink使其工作

这几乎是我在创建的每个项目中都遇到的问题。一个解决方案可能是在链接标签中包含数据no turbolink,该标签打开了我有问题的视图,但它是一个主页和其他不依赖于单个链接的主页。最后,我更喜欢一个最佳的解决方案,而不是一个黑客

在application.js中执行此操作

希望有帮助

在application.js中执行此操作


希望有帮助

这一次也让我大吃一惊,但是你需要解释一下highlightJS认为除了TurboLinks绕过document.ready事件之外,它已经被调用了。@rsb的代码只考虑绕过document.ready事件触发器的TurboLink。因此,在RSB的回答中需要hljs.initHighlighting.called=false:

ready = function() {
  hljs.initHighlighting.called = false;
  hljs.initHighlighting();
}

注意:我将调用更改为initHighlighting而不是initHighlightingOnLoad。

这一次也让我大吃一惊,但是您需要说明highlightJS认为除了绕过document.ready事件的TurboLink之外,它已经被调用了。@rsb的代码只考虑绕过document.ready事件触发器的TurboLink。因此,在RSB的回答中需要hljs.initHighlighting.called=false:

ready = function() {
  hljs.initHighlighting.called = false;
  hljs.initHighlighting();
}

注意:我将调用改为initHighlighting,而不是initHighlightingOnLoad。

它没有任何作用。我已经重新启动了rails服务器,并且正在使用带有rake资产的开发环境:clean。网络浏览器也刷新了。在application.js中包含代码不是个坏主意吗?只是问问而已,没什么用。我已经重新启动了rails服务器,并且正在使用带有rake资产的开发环境:clean。网络浏览器也刷新了。在application.js中包含代码不是个坏主意吗?只是问问而已。
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require ckeditor-jquery
//= require_tree ./code
//= require turbolinks

ready = function(){
  hljs.initHighlightingOnLoad();
}

$(document).ready(ready);
$(document).on('page:load', ready);
ready = function() {
  hljs.initHighlighting.called = false;
  hljs.initHighlighting();
}