代码之家  ›  专栏  ›  技术社区  ›  Chloe

弃用警告:资产管道中不存在资产“ckeditor.js”。正在退回到公用文件夹中的资产

  •  0
  • Chloe  · 技术社区  · 5 年前

    我最近更新了Rails 5.2.2(从4.2.3开始),现在我在使用CKEditor gem的页面上的日志中得到了这个警告。

    弃用警告:资产管道中不存在资产“ckeditor.js”。正在退回到公用文件夹中的资产。 此行为已被弃用,将被删除。 要绕过资产管道并保留此行为, 使用 skip_pipeline: true 选项

    <%= javascript_include_tag :ckeditor %>
    

    我试着加上 跳过管道:true 但随后它开始请求“/javascripts/ckeditor.js”,这导致了404错误。

    无论哪种方式,CKEditor都可以工作,文本字段是富文本。我的电话里有这一行 application.js

     //= require ckeditor/init
    

    它甚至可以在没有 javascript_include_tag

    2 回复  |  直到 5 年前
        1
  •  1
  •   Nate    5 年前

    Rails将为JavaScript资产文件夹中的每个文件提供一个JavaScript文件。例如,你应该有一个 javascript_include_tag 对于 :application

    此消息来自Rails试图查找js文件的资产名,因为在prod Rails中,Rails在文件名上附加了一个唯一的散列,以防止缓存。

    这可能一直都是一个问题,您只是从来没有注意到JavaScript文件404ing,现在Rails 5.2比4.2更关注这个问题。

    你应该删除 javascript_include_标记 线

    或者,您可以创建一个ckeditor.js文件,并移动 //= require ckeditor/init 从application.js文件转到ckeditor.js。现在,您可以只在需要的页面上执行JavaScript_include_标记。但是要小心你的装载顺序。如果application.js文件中有依赖于ckeditor的js,或者相反,则需要确保在html中以正确的顺序包含文件(与application.js中的requires顺序相同,假设顺序很重要)。

        2
  •  0
  •   Chloe    5 年前

    这起作用了

    <%= javascript_include_tag 'ckeditor/init' %>
    

    我还注释掉了应用程序清单中的行

    // only load on required pages // require ckeditor/init