我在这里阅读并尝试了资产管道指南:http: //guides.rubyonrails.org/asset_pipeline.html
...它显示了如何在手动创建和更新的列表中包含特定文件,--或-- Proc 包含一个(或多个目录)但随后排除了 Rails 通常包含的所有其他文件。
我想 += 我的文件文件夹到通常包含的文件。
我已经尝试了答案:
Rails config.assets.precompile 设置处理 app/assets 中的所有 CSS 和 JS 文件
config.assets.precompile 的目的是什么?
rails config.assets.precompile 用于特定子文件夹
...最后一个似乎显示了一个解决方案:
config.assets.precompile += ["*external/calendars*"]
我改为:
config.assets.precompile += %w["*javascript*"]
或 config.assets.precompile += [" javascript "] (以及大约 20 种其他变体。)
...获取我的 assets/javascript 文件夹。但该目录不包括在内,如错误“...未预编译”所证明的那样。
第三种方法,就是给它
config.assets.precompile += %w( *.js )
...这可行,但会导致非常非常长的编译,我假设在任何地方都能找到它可以发现的每个 JS 文件。
不用说,将文件添加到手动更新的列表不适合正在进行的应用程序 - 并且丢失 Rails 使用排除性 Proc 预编译的任何未知内容也不会削减它(但这是文档中仅有的两个示例) .
是否没有简单的通配符解决方案来“+-=”一个文件夹 - 或者只是关闭这个“功能”,为每个视图指定我的 JS,并且仍然可以在 Heroku 上工作?
----编辑-我越看越不合理。本质上,解决方案是“加载 Rails 在开发模式下发现 A-OK 的所有内容”。然而这样的选择不存在吗?
引用预编译行的 production.rb 文件说:
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
...和 application.js 有:
//= require_tree .
...所以应该加载该目录下的所有文件 - 但它没有。为什么?我挖掘得越深,这就越没有意义。