Rails 5 个与多个清单文件有关的问题
Rails 5 problems with multiple manifest files
我的问题
在我的 Rails 5 应用程序中,我有 2 个布局,因此我需要设置多个清单文件。
我做了什么
我做了以下事情:
这两个 layouts
有一个 user.html.erb
和一个 main.html.erb
html 文件,在那里我用正确的标签链接了我的 application.js
在 user.html.erb
和我的 main.js
中 main.html.erb
。
文件加载,如果我按照localhost:3000/assets/application.js
显示清单中包含的js文件的全部内容,而在/assets/main.js
仅显示以下行:
(function() {
}).call(this);
我遵循了以下讨论中的说明 Rails 4 Assets Precompilation with multiple manifest files,但它们不起作用
config.assets.precompile += %w( main.js )
我搜索了 Whosebug 并阅读了文档,但一直没有找到这个问题的答案。我正在使用:
* rails (5.0.1)
* sprockets (3.7.1)
* sprockets-rails (3.2.0)
更新
在 main.js 文件中,我将以下内容作为测试:
//= require jquery
//= require bootstrap-sprockets
//= require jquery.easing
已测试的解决方案
- 我尝试按照此说明在我的 assets.rb 中添加摘要文件,但这并没有解决问题
asset pre compilation for subdirectory manifest file
- 我有 Rails 5 和 Ruby 2.3.3p222。一些旧的 Whosebug 讨论表明问题是由 Ruby 2.0 引起的,他们建议 恢复到 Ruby 1.9 Javascript files are not included from manifest
- 最佳解决方案(我在 Whosebug 讨论中读到)是编辑 html div 和 类 以便不同布局的不同 JS 文件可以全部包含在一个清单文件中,而不会在浏览器中触发控制台错误。
我的解决方案
我的临时解决方案是,因为我有 2 个布局,其中一个 js 文件会在另一个布局中导致控制台错误,因为它们都使用相同的 ID 或 类,将是 评论我不需要的 JS 代码(因为我使用的 HTML-Layout 有许多我不使用的效果)并且不包括导致问题的整个文件(custom.js)在我的清单文件中。
我会将此文件单独包含在我的布局 main.html.erb
文件中,并带有标签。
<%= javascript_include_tag 'custom', 'data-turbolinks-track': 'reload' %>
这将解决所有问题。
我的问题
在我的 Rails 5 应用程序中,我有 2 个布局,因此我需要设置多个清单文件。
我做了什么
我做了以下事情:
这两个
layouts
有一个user.html.erb
和一个main.html.erb
html 文件,在那里我用正确的标签链接了我的application.js
在user.html.erb
和我的main.js
中main.html.erb
。文件加载,如果我按照
localhost:3000/assets/application.js
显示清单中包含的js文件的全部内容,而在/assets/main.js
仅显示以下行:(function() { }).call(this);
我遵循了以下讨论中的说明 Rails 4 Assets Precompilation with multiple manifest files,但它们不起作用
config.assets.precompile += %w( main.js )
我搜索了 Whosebug 并阅读了文档,但一直没有找到这个问题的答案。我正在使用:
* rails (5.0.1)
* sprockets (3.7.1)
* sprockets-rails (3.2.0)
更新
在 main.js 文件中,我将以下内容作为测试:
//= require jquery
//= require bootstrap-sprockets
//= require jquery.easing
已测试的解决方案
- 我尝试按照此说明在我的 assets.rb 中添加摘要文件,但这并没有解决问题 asset pre compilation for subdirectory manifest file
- 我有 Rails 5 和 Ruby 2.3.3p222。一些旧的 Whosebug 讨论表明问题是由 Ruby 2.0 引起的,他们建议 恢复到 Ruby 1.9 Javascript files are not included from manifest
- 最佳解决方案(我在 Whosebug 讨论中读到)是编辑 html div 和 类 以便不同布局的不同 JS 文件可以全部包含在一个清单文件中,而不会在浏览器中触发控制台错误。
我的解决方案
我的临时解决方案是,因为我有 2 个布局,其中一个 js 文件会在另一个布局中导致控制台错误,因为它们都使用相同的 ID 或 类,将是 评论我不需要的 JS 代码(因为我使用的 HTML-Layout 有许多我不使用的效果)并且不包括导致问题的整个文件(custom.js)在我的清单文件中。
我会将此文件单独包含在我的布局 main.html.erb
文件中,并带有标签。
<%= javascript_include_tag 'custom', 'data-turbolinks-track': 'reload' %>
这将解决所有问题。