Rails 5个多个清单文件的问题

谢谢你的帮助。

我的问题

在我的Rails 5应用程序中,我有2个布局,因此我需要设置多个清单文件。

我做了什么

我做了以下事情:

  1. 这两个layouts有一个user.html.erb和一个main.html.erb html文件,我用main.jsmain.html.erb main.js链接了正确的标签。
  2. 文件加载,如果我按照localhost:3000/assets/application.js显示清单中包含的js文件的完整内容,而在/assets/main.js只显示以下行:

     (function() { }).call(this); 
  3. 我遵循以下讨论中包含的说明Rails 4 Assets预编译与多个清单文件 ,但它们不起作用

     config.assets.precompile += %w( main.js ) 

我搜索了Stackoverflow并阅读了文档,但是没有找到任何答案。 我在用:

 * rails (5.0.1) * sprockets (3.7.1) * sprockets-rails (3.2.0) 

更新

在main.js文件中,我将以下内容作为测试:

 //= require jquery //= require bootstrap-sprockets //= require jquery.easing 

非常感谢你的帮助,我真的希望你能帮助我。 最诚挚的问候Fabrizio Bertoglio

测试解决方案

  1. 我尝试添加我的assets.rb摘要文件,如此说明,但这并没有解决问题资产预编译子目录清单文件
  2. 我有Rails 5和Ruby 2.3.3p222。 一些旧的Stackoverflow讨论表明问题是由Ruby 2.0引起的,他们建议恢复到Ruby 1.9 清单中不包含Javascript文件
  3. 最好的解决方案 (我在Stackoverflow讨论中读到)是编辑html div和类,以便不同布局的不同JS文件都可以包含在一个清单文件中,而不会在浏览器中触发控制台错误。

我的解决方案

我的临时解决方案是,因为我有2个布局,其中一个js文件会导致其他布局中的控制台错误,因为它们都会使用相同的ID或类,会评论我不需要的JS代码 (因为我是使用HTML-Layout和许多我不使用的效果)并且不包括导致我的清单文件中的问题(custom.js)的整个文件。 我会在带有标签的布局main.html.erb文件中单独包含此文件。

 <%= javascript_include_tag 'custom', 'data-turbolinks-track': 'reload' %> 

这将解决所有问题。