Rails `applications.js` 清单中未提及的 5 项资产是否已提供?

Rails 5 assets not mentioned on the `applications.js` manifest are served?

请赐教!

假设我在 Rails 5 应用程序中有以下资产结构。

app/assets/javascripts
  application.js
  file1.js

application.js 清单中,我不需要 //= file1 也没有使用 require_tree . 指令。

如果清单中不需要任何 JS 文件 application.js 也不会包含在 Rails.application.config.assets.precompile += %w[]

  1. 是否要提供此资产?
  2. 如果某个视图中有标签 <%= javascript_include_tag 'file1' %> ,它应该工作还是引发错误?

不,默认情况下不提供该文件。默认情况下(取决于 Rails version/asset 配置),只有 Rails.application.config.assets.precompile 中列出的文件,默认情况下 application.js application.css 或较新的 Sprockets/Rails 通过manifest.js 中列出的文件可通过 javascript_include_tag 直接提供。

那 2. 会引发错误。