【发布时间】:2013-08-15 15:10:08
【问题描述】:
我已在此处阅读并尝试了 Assets Pipeline 指南: http://guides.rubyonrails.org/asset_pipeline.html
... 它显示了如何在手动创建和更新的列表中包含特定文件,--或-- Proc 包含一个(或多个目录)但随后排除了 Rails 通常包含的所有其他文件。
我想将我的文件文件夹 += 到通常包含的文件中。
我已经尝试了答案:
Rails config.assets.precompile setting to process all CSS and JS files in app/assets
What is the purpose of config.assets.precompile?
rails config.assets.precompile for specific sub folder
...最后一个似乎显示了解决方案:
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 上运行?
----EDIT - 我越看越不合理。 本质上,解决方案是“加载 Rails 在开发模式下发现 A-OK 的所有内容”。然而这样的选择还不存在?
production.rb 文件,指的是预编译行,说:
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
...而 application.js 有:
//= require_tree .
... 所以应该加载该目录下的所有文件 - 但它没有。为什么?我挖掘得越深,它的意义就越小。
【问题讨论】: