javascript - Heroku 上的 Rails,redacto 编辑器显示两次

标签 javascript ruby-on-rails heroku redactor

在我的开发环境中,一切正常。

编辑工作非常出色。

但是当应用程序在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/

相关文章:

javascript - 如何通过 jQuery 滑动切换下拉菜单项?

javascript - Spotify 网络 API 结果 "undefined"

MySQL 执行一些 ActiveRecord 查询比直接运行慢(通过 "mysql"命令)

mysql - 不确定如何将 SQL 转换为 Rails ActiveRecord

javascript - 修改原语的完整方法列表是什么?

javascript - 如何防止更改链接或元素?

ruby-on-rails - Rails 是否有可能有一个模型可以包含两种类型的模型 : Tree of multiple models

heroku - Heroku 上的 NestJS 总是无法绑定(bind)端口

django - 关系 "django_session"不存在

ruby-on-rails - 无法将应用程序部署到 heroku