[LRUG] Rails 4 asset deployment woes

Adam Carlile adam at benchmedia.co.uk
Mon Jul 15 04:53:37 PDT 2013


I'm not sure as to why it's not minifying the assts, however the first issue is usually down to not using the built in url helpers for images and assets,

Instead of using standard CSS, you will probably have to switch the file to either scss, or sass, and then instead of:

body {
      background: url(/assets/cat-abc123def456.jpg);
    }

you should be able to do

body {
      background: image-url(cat.jpg)
    }

The syntax may be a little different, however that should ensure that rails compiles the assets with the fingerprints.

Adam


On 15 Jul 2013, at 12:45, James Coglan <jcoglan at gmail.com<mailto:jcoglan at gmail.com>>
 wrote:

I'm struggling with getting asset deployment to work after upgrading a few of our apps to Rails 4. I have two main problems:

* We cannot reference images/fonts from stylesheets
* Our CSS/JS is no longer being minified in production

The first one is because Rails no longer generates unversioned filenames in public/assets, so you need to have

    body {
      background: url(/assets/cat-abc123def456.jpg);
    }

in your stylesheet rather than

    body {
      background: url(/assets/cat.jpg);
    }

Of course, the latter works in development but not in production after precompiling the assets. So, we need to know how to get those version numbers into the CSS, since Rails does not rewrite these references by default while precompiling assets.

Second, our CSS is not being minified, and we have no idea why. If you clone https://github.com/jcoglan/rails_assets, and run:

    $ bundle exec rake assets:precompile

then it does not minify the code in public/assets, which we assumed was because config/environments/development.rb sets config.assets.debug = true. If you compile in production:

    $ RAILS_ENV=production bundle exec rake assets:precompile

then it does minify the CSS. So, we figured there must be a config difference and that would explain why our code is not being minified in our production apps that have been upgraded from Rails 3 to 4. So, I deleted all the code from config/environments/{development,production}.rb and it still does the same thing: no minification in development mode, and minified code in production. So it doesn't seem like a config thing -- is this difference baked in Rails? What am I doing wrong? Why would our production apps not be minifying their CSS?

--
James Coglan
http://jcoglan.com<http://jcoglan.com/>
+44 (0) 7771512510
_______________________________________________
Chat mailing list
Chat at lists.lrug.org<mailto:Chat at lists.lrug.org>
http://lists.lrug.org/listinfo.cgi/chat-lrug.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20130715/2a591405/attachment-0003.html>


More information about the Chat mailing list