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

时间:2011-09-09 21:53:40

标签: ruby-on-rails ruby-on-rails-3.1 sass sprockets asset-pipeline

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清单文件?

2 个答案:

答案 0 :(得分:27)

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

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

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

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

答案 1 :(得分:-2)

我怀疑这可能是错误。

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

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