Search code examples
ruby-on-railsassets

Multiple themes in rails 4.x?


What is the best way to have multiple themes in a rails project. I have a CMS and a website. And my vendor looks now like this

vendor
 |-- images/
 |    |-- <images>
 |-- javascripts/
 |    |-- <javascripts>
 |-- stylesheets/
 |    |-- <css>
 |  

I want it to look like this:

vendor
 |-- cms --images/
 |         |-- <images>
 |       --javascripts/
 |         |-- <javascripts>
 |       -- stylesheets/
 |         |-- <css>
 |
 |-- web --images/
 |         |-- <images>
 |       --javascripts/
 |         |-- <javascripts>
 |       --stylesheets/
 |         |-- <css>

If I do this.. how do I "require" them in application.css?


Solution

  • Make 2 application.css.
    for example application.cms.css and application.web.css, it same as application.css

    Require your cms css files in application.cms.css. Also require web css files in application.web.css.

    And add precompile path,

    # config/application.rb or initializers/assets.rb <- depend on rails version
    Rails.application.config.assets.precompile += ['application.cms.css', 'application.web.css']
    

    And include application.cms.css or application.web.css in layout html file depend on your condition.