根据我的理解,ruby 生产环境下运行都是将所有的 js 和 css 压缩成一个 application.js 和 application.css,这就是 Asset Pipeline 的机理。现在我的 assets/javascript 里有许多的 Main Features,根据不同的登陆者的身份加载不同的 css 和 js 比如登陆者身份为 A 的 layout 如下
<%= stylesheet_link_tag :application %>
<%= javascript_include_tag :application %>
比如登陆者身份为 B 的 layout 如下
<%= stylesheet_link_tag :teacher %>
<%= javascript_include_tag :teacher %>
只要对不同的 controller 使用不同的 layout 就可以达到不同的登陆界面了。 现在的问题是,如果这样直接部署的话,有的 js 和 css 就不能被预编译了,我查了 Ruby on rails guide,发现可以修改 application.rb 的配置文件的内容 config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js'] 添加相应的 js css,但是这样的话,这些 js 和 css 编译到一块了,这样不是冲突了吗。。因为有些 js 和 css 是相互冲突我才将他们放在不同的文件夹下的。根据对应的登陆者角色,layout 也不同。这个问题大家是如何解决的。。。