Rails 5个多个清单文件的问题
谢谢你的帮助。
我的问题
在我的Rails 5应用程序中,我有2个布局,因此我需要设置多个清单文件。
我做了什么
我做了以下事情:
- 这两个
layouts
有一个user.html.erb
和一个main.html.erb
html文件,我用main.js
和main.html.erb
main.js
链接了正确的标签。 -
文件加载,如果我按照
localhost:3000/assets/application.js
显示清单中包含的js文件的完整内容,而在/assets/main.js
只显示以下行:(function() { }).call(this);
-
我遵循以下讨论中包含的说明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
测试解决方案
- 我尝试添加我的assets.rb摘要文件,如此说明,但这并没有解决问题资产预编译子目录清单文件
- 我有Rails 5和Ruby 2.3.3p222。 一些旧的Stackoverflow讨论表明问题是由Ruby 2.0引起的,他们建议恢复到Ruby 1.9 清单中不包含Javascript文件
- 最好的解决方案 (我在Stackoverflow讨论中读到)是编辑html div和类,以便不同布局的不同JS文件都可以包含在一个清单文件中,而不会在浏览器中触发控制台错误。
我的解决方案
我的临时解决方案是,因为我有2个布局,其中一个js文件会导致其他布局中的控制台错误,因为它们都会使用相同的ID或类,会评论我不需要的JS代码 (因为我是使用HTML-Layout和许多我不使用的效果)并且不包括导致我的清单文件中的问题(custom.js)的整个文件。 我会在带有标签的布局main.html.erb
文件中单独包含此文件。
<%= javascript_include_tag 'custom', 'data-turbolinks-track': 'reload' %>
这将解决所有问题。