获取SASS从多个目录生成CSS文件

时间:2010-11-14 20:03:18

标签: ruby-on-rails

Rails相当新。我正在Rails网站上实施批发主页重新设计。目前,我们将推送重新设计的主页,但保留网站的其余部分。之后,我们将把网站的其余部分移植到新设计中。

我想在当前项目中创建一个仅由主页加载的CSS“分支”。我们使用SASS生成CSS。文件布局:

/public/stylesheets:         #Generated CSS for rest of site
/public/stylesheets/sass:    #SASS source files for rest of site
/public/stylesheets/v3:      #Desired location for CSS for home page
/public/stylesheets/v3/sass: #SASS source files for new-style home page

/的控制器调用render :layout => 'v3',此布局包含:

!= include_stylesheets :common_v3, :media => "all"

以下是assets.yml的相关部分:

stylesheets:
  common:
    - public/stylesheets/reset.css
    - public/stylesheets/*.css

  common_v3:
    - public/stylesheets/v3/reset.css
    - public/stylesheets/v3/*.css

有人可以帮我弄清楚如何让SASS生成新的CSS文件吗?如果我在/public/stylesheets/sass中放入一个新文件,则会创建相应的CSS文件,但会忽略v3目录。

我在environment.rb中尝试了以下操作,但它无效。

Sass::Plugin.options[:template_location] =  %W( #{RAILS_ROOT}/public/stylesheets/sass #{RAILS_ROOT}/public/stylesheets/v3/sass )

将Rails 2.3.8与Haml 2.2.2一起使用。

1 个答案:

答案 0 :(得分:2)

首先,将Haml / Sass升级到最新版本(3.0.24)。

现在,您可以使用Sass::Plugin.add_template_location method告诉Sass模板的位置。例如:

Sass::Plugin.add_template_location("#{RAILS_ROOT}/public/stylesheets/v3/sass",
                                   "#{RAILS_ROOT}/public/stylesheets/v3")