Sprockets:编译独立 javascript/stylesheet 文件

Sprockets: Compile standalone javascript/stylesheet file

我补充了:

//= link_directory ../custom/javascripts .js

app/assets/config/manifest.js 并假设这样我就可以从我的视图中单独引用生活在 custom 文件夹中的资产:

= javascript_include_tag "custom/javascripts/application", 'data-turbolinks-track': 'reload'

但是我得到这个错误:

The asset "custom/javascripts/application" is not present in the asset pipeline.

如何从默认 javascripts/application.js 文件中单独编译 custom/javascripts/application.js

我想向您推荐一种不同的方法。 而不是向 manifest.js 添加一个文件夹,为什么不在 app/assets/javascripts 中添加一个新的 custom_application.js,创建一个文件夹 app/assets/javascripts/custom 并在 [=41= 中为该文件夹添加 require ]?

在你的app/assets/javascripts/custom_application.js(以及你需要的一切)

//= require_tree ./custom

在你的前端 app/views/layouts/application.html.erb 头部包含这个文件

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

并在您的 config/initializers/assets.rb 中添加此行:

Rails.application.config.assets.precompile += %w( custom_application.js )

编辑: 如果你需要另一个文件夹而不是默认文件夹,你可以在 app/assets 中添加它,然后编辑你的 app/assets/config/manifest.js:

//= link_tree ../images
//#= link_directory ../javascripts .js
//= link_directory ../custom .js
//= link_directory ../stylesheets .css

在您的 app/views/layouts/application.html.erb 中您不需要指定您的路径

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

但是,如果您同时需要来自 javascript 和自定义文件夹的 application.js,我认为您需要重命名 custom/application.js