预编译不同布局的资产 - Rails

时间:2013-09-27 06:50:43

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 asset-pipeline

在我的rails应用程序中,我有3种不同用户的布局。每个布局都包含一些javascript和css文件。

我无法在application.js或application.css文件中使用以下行

//= require_tree .  or  *= require_tree .

当我预编译所有js和css时,我的网站中的所有内容都会受到干扰。

但是我想编译所有的js和css文件但是编译然后一起工作不起作用。因为当我将所有css文件编译在一起时,我的一些类会被其他类覆盖。

即使在预编译我的资产时,它也没有给我任何错误。

或者我只能在application.js或application.css中包含这些文件,这些文件在3种布局中很常见。像这样

//= require jquery-1.8.3
//= require jquery-migrate-1.0.0.js
//= require jquery-ui.js

但是如果我想要预编译我在布局中不常见的其他js或css文件怎么办? 任何解决方案?

2 个答案:

答案 0 :(得分:0)

从我能得到的任何东西,我认为你想为不同的用户设置不同的布局。你应该做的是从你的application.css和application.js文件中删除require树,并要求你想要在整个应用程序中拥有的所有文件,然后对于特定的用户,你可以简单地渲染该布局

答案 1 :(得分:0)

在config / environments / production.rb中,您可以设置,您想要预编译什么

config.assets.precompile << %w(admin.js admin.css user.js user.css)