在我的开发环境中,一切正常。
编辑工作非常出色。
但是当应用程序在heroku上运行时,所见即所得编辑器Redactor会显示两次。
一个默认样式的 Redactor 编辑器和一个自定义样式的 Redactor 编辑器。
我尝试删除自定义设置,
不工作,
它显示两个,两个默认样式编辑器,
禁止turbolinks或修改配置,它仍然不起作用。
无论我做什么,我都会在使用 Redactor 的页面上看到两个编辑器。
在 Heroku 上,页面如下所示:
<div class="redactor-box">
<ul class="redactor-toolbar" id="redactor-toolbar-2">
</ul>
<div class="redactor-editor">
</div>
<div class="redactor-box">
<ul class="redactor-toolbar" id="redactor-toolbar-3">
</ul>
<div class="redactor-editor">
</div>
</div>
</div>
在我的开发环境中,它看起来像:
<div class="redactor-box">
<ul class="redactor-toolbar" id="redactor-toolbar-2">
</ul>
<div class="redactor-editor">
</div>
</div>
这是我的代码。
#app/views/articles/new.html.erb
<div class="col-md-8 col-xs-8 col-xs-offset-2 col-md-offset-2">
<%= form_for([current_user, @article]) do |f| %>
<%= render 'shared/error_messages', var: @article %>
<%= f.label :title %>
<%= f.text_field :title, class: 'form-control', id: "article-title" %></br>
<%= f.label :content %>
<%= f.text_area :content, class: :redactor %></br>
<%= f.submit "Save", class: "btn btn-default btn-custom" %>
<% end %>
</div>
这是我的 Redactor 配置。
#app/assets/javascripts/redactor-rails/config.js
window.init_redactor = function(){
var csrf_token = $('meta[name=csrf-token]').attr('content');
var csrf_param = $('meta[name=csrf-param]').attr('content');
var params;
if (csrf_param !== undefined && csrf_token !== undefined) {
params = csrf_param + "=" + encodeURIComponent(csrf_token);
}
$('.redactor').redactor({
"imageUpload":"/redactor_rails/pictures?" + params,
"imageGetJson":"/redactor_rails/pictures",
"fileUpload":"/redactor_rails/documents?" + params,
"fileGetJson":"/redactor_rails/documents",
"path":"/assets/redactor-rails",
"css":"style.css",
"minHeight" : 300
});
}
$(document).on( 'ready page:load', window.init_redactor );
rails “4.2.3”
编辑器 rails '0.5.0'
感谢您的阅读。
<小时/>更新
当我删除所有配置文件,而不仅仅是更改一些设置时,
我的显示正确。
但如果我这样做,我就无法自定义我的编辑器。
最后我用CSS解决了这个问题。 这是一个愚蠢的方法,
额外的编辑器只是被隐藏,而不是消失。
.fix-box {
margin-top: 110px;
.redactor-box {
#redactor-toolbar-2 {
display: none;
}
.redactor-box {
margin-top: -110px;
}
}
}
最佳答案
你应该改变
$(document).on( 'ready page:load', window.init_redactor );
至
$(document).ready(function(){window.init_redactor});
在某些情况下,pageLoad 可能会被多次调用,从而导致您的情况出现多个 Redactor 实例
关于javascript - Heroku 上的 Rails,redacto 编辑器显示两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297218/