Rails - 控制器咖啡脚本在 bootswatch 主题后停止工作

Rails - controller coffee scripts stopped working after bootswatch theme

我被要求完成一项更改整个网站主题的任务。我使用 bootswatch superhero 主题成功地做到了这一点。但问题是有控制器 jquery 咖啡脚本,它们在应用主题后停止工作。它在 'app/assets/javascript//' 中创建了一个主题文件夹 我所有的控制器咖啡脚本都位于 javascript 根级别的主题文件夹之外,例如:'app/assets/javascripts/device.js.coffee'。如果我将它们移到 superhero 文件夹中,它们就会起作用。但是有大量的控制器脚本,我不想将它们全部移动到主题文件夹中。我在这里缺少什么。???

config/initializer/assets.rb

Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.precompile += %w( twitter/bootstrap/glyphicons-halflings.png )
Rails.application.config.assets.precompile += %w( twitter/bootstrap/glyphicons-halflings-white.png )
Rails.application.config.assets.precompile += %w( superhero.css )
Rails.application.config.assets.precompile += %w( superhero.js )

app/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require jquery-ui

我的资产管道文件夹结构

谢谢大家的观看,我通过彻底阅读资产管道的工作原理自己弄明白了。当您应用新主题时,它会在 assets/javascripts/ 下创建 "theme_name.js"。默认情况下 application.js 设置为预编译。但是我们将在 config/initializers/assets.rb 中使用以下内容覆盖它。 "Rails.application.config.assets.precompile += %w( superhero.js )" 因此,如果您希望控制器脚本在新主​​题之外工作,只需将此指令 //= require_tree . 包含在 theme_name.js 文件中。瞧!它奏效了...