当我部署到生产环境中时,我发现一些清单文件未经过预编译。我意识到这些清单文件都有扩展名,如.sass或.js.coffee
我确实将这些内容包含在application.rb
中config.assets.precompile << 'admin.js.coffee'
。
那么清单文件不能是普通的css / js以外的东西吗?
更新
我有一个fish.sass,做config.assets.precompile << 'fish.sass'
不会做任何事情。但是,如果我config.assets.precompile << 'fish.css'
,它将正确编译。似乎很奇怪我必须指定一个不存在的文件才能使它工作。
答案 0 :(得分:1)
清单文件可以包含其他文件,例如sass,coffee。部署应用时,您需要运行rake assets:precompile
。这将预编译所有资产文件。
如果您有其他文件,则需要在production.rb
中添加config.assets.precompile += %w( admin.js, admin.css )
确保您在produ.rb
中也有此功能config.assets.compile = true
您必须使用扩展名.js
和.css
命名清单文件,然后在production.rb
内添加相同的名称。
答案 1 :(得分:1)
文件fish.css
确实存在。在编译资产之前,rails将查看您的文件名,并根据其扩展名解析文件。所以sass文件将以css,coffee in js等呈现。