我的问题很简单:
application.js
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require ckeditor-jquery
//= require_tree ./code
//= require turbolinks
hljs.initHighlightingOnLoad();
index.html.erb
<% @posts.each do |post| %>
<%= link_to post.title, post, class: 'ui large header' %>
<%= post.created_at.strftime("%B %d, %Y") %>
<%= simple_format(post.body) %>
<% end %>
Highlight.js 和 default.css.scss 位于 Assets 文件夹内的相应位置,如果我刷新页面,一切都会成功。我尝试注释掉 application.js 中的 Turbolinks 行,一切正常。我怎样才能通过保留涡轮链接使其工作?
这是我在创建的几乎每个项目中都会遇到的问题。解决方案可能是在链接的标记中包含 data-no-turbolink
,该标记会打开我遇到问题的 View ,但它是一个不依赖于单个链接的主页(和其他主页)。最后,我更喜欢最佳解决方案而不是黑客。
这也让我感到惊讶,但是您需要考虑到highlightJS,认为除了绕过 document.ready 事件的 TurboLinks 之外,它还已经被调用。 @rsb 的代码仅考虑绕过 document.ready 事件触发器的 Turbolinks。因此,RSB 的答案中需要 hljs.initHighlighting. Called = false
:
ready = function() {
hljs.initHighlighting.called = false;
hljs.initHighlighting();
}
注意:我将调用更改为 initHighlighting()
thay vì initHighlightingOnLoad()
.
Tôi là một lập trình viên xuất sắc, rất giỏi!