Precompiling a .scss manifest file using Rails 3.1

2019-02-06 04:40发布

问题:

The release version of Rails 3.1 is having some weird issues with precompiling a sass manifest file with the extension scss. The weird thing is that the default manifest file application.scss compiles fine and I see it under public/assets/.

However when I try to compile my custom manifest files, nothing is created. I have enabled the precompile option in the production config.

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

I am running the precompile rake task correctly as far a I know.

rake assets:precompile RAILS_ENV=production

And maybe this helps. When I create two new manifest files with the extension css instead of scss and require the original scss files in them, then these new manifest files are honored and properly compiled. Why does application.scss get this special treatment and not other sass manifest files?

回答1:

Include the compiled filenames in your precompile list:

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

Also, you may want to to rename the original files in app/assets/stylesheets to include the compiled extension in the original filenames so it's clear what is going on:

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


回答2:

I suspect it might be bug.

The application files are treated as the main files for a default project. The one ending in .css and .js are included in the precompile list by default.

The behavior you describe (manifests having a .css extension) is the correct one.