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

Rails 3.1的发行版在预编译扩展名为sass的清单文件时存在一些怪异的问题scss奇怪的是,默认清单文件可以正常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清单文件?

番长猴子2020/03/24 15:27:46

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

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

另外,您可能想重命名原始文件,app/assets/stylesheets以将编译后的扩展名包含在原始文件名中,因此很清楚发生了什么:

user.scss -> user.css.scss
admin.scss -> admin.css.scss
LGil2020/03/24 15:27:46

我怀疑这可能是错误。

这些application文件被视为默认项目的主文件。默认情况下,预编译列表中包含以.css和.js结尾的代码。

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