使用Rails 3.1的资产管道预编译.scss清单文件

Rails 3.1的发布版本在预编译带有扩展名scss的sass清单文件时遇到了一些奇怪的问题。 奇怪的是,默认的清单文件application.scss编译得很好,我在public/assets/下看到它。

但是,当我尝试编译自定义清单文件时,不会创建任何内容。 我在生产配置中启用了预编译选项。

 config.assets.precompile += %w( user.scss admin.scss ) 

就我所知,我正在正确运行预编译rake任务。

 rake assets:precompile RAILS_ENV=production 

也许这会有所帮助。 当我使用扩展名css而不是scss创建两个新的清单文件并且需要其中的原始scss文件时,这些新的清单文件将得到尊重并正确编译。 为什么application.scss得到这种特殊处理而不是其他sass清单文件?

在预编译列表中包含已编译的文件名:

 config.assets.precompile += %w( user.css admin.css ) 

此外,您可能希望重命名app/assets/stylesheets中的原始文件,以在原始文件名中包含已编译的扩展名,以便清楚地了解发生了什么:

 user.scss -> user.css.scss admin.scss -> admin.css.scss 

我怀疑它可能是bug。

application文件被视为默认项目的主文件。 以.css和.js结尾的那个默认包含在预编译列表中。

您描述的行为(具有.css扩展名的清单)是正确的。