Rails:如何为生产环境预编译自定义样式表?

时间:2012-08-21 18:11:42

标签: ruby-on-rails ruby-on-rails-3

我尝试了很多修复工具和我在网上找到的那些修补程序的变体但没有工作。我的问题是,如果浏览器是IE(stylesheet-ie.css.scss),我有一个自定义样式表。我跑了以下没有成功:

rake assets:precompile

运行compile命令后,我在production.log中收到以下错误。

ActionView::Template::Error (stylesheet-ie.css isn't precompiled):
    14:     <title><%= full_title(yield(:title)) %></title>
    15:     <%= stylesheet_link_tag    "application", media: "all" %>
    16:     <!--[if IE]>
    17:       <%= stylesheet_link_tag("stylesheet-ie") %>
    18:     <![endif]-->
    19:     <%= javascript_include_tag "application" %>
    20:     <%= csrf_meta_tags %>

在production.rb中我有:

config.assets.precompile += ['stylesheet-ie.css']

该文件是assets / stylesheet / stylesheet-ie.css.scss ...之前我把它作为stylesheet.css但是改为试图让它工作。两种方式都不起作用。

此时我不知道还能做什么。

2 个答案:

答案 0 :(得分:1)

这是否适用于开发环境?

在进行预编译时,您必须指定环境。你在任何地方都这样做吗?

RAILS_ENV=production rake assets:precompile 

这应该编译您的资产,以防您在其他地方没有提及您的环境。

答案 1 :(得分:0)

槽糕。

我的config / application.rb设置如下:

config.sass.load_paths << File.expand_path('../../lib/assets/stylesheets/')
config.assets.precompile += %w(jquery.animate-colors-min.js ie.js ie8.css)

所以它非常相似,但你没有提到load_paths。 (另外,BTW,我正在使用.css.sass,所以我不确定你是否需要摆弄config.sassconfig.scss。)

-☈