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一起使用。
答案 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")