Make your website super fast with Asset Pipeline, Sprites & Cloudfront
blog.railsonfire.com
blog.railsonfire.com
I still love the simplicity of developing with Rails, but all these things you need to remember to deploy give me cold sweats.
Using a CDN, sprites, and other details in this blog post are iterative optimizations, not deployment prerequisites. They certainly aren't more trivial to implement if you aren't using Rails.
Rails 3.x, though with a couple of good ideas, it's not as easy as it used to be to start developing an app, less say deploying it. Too many helpers and technologies to learn, IMO completely unnecessary.
I thought I'd heard of everything, but I haven't heard of a single one of these. Any chance you can write up a blog post about building websites with them and post it?
Yes it is and frustrating is that you have to read spec over spec to follow all the conventions. You can be very fast with Rails and all its gems but to get there takes time and it's no fun anymore.
Rails has not become more complicated to develop for. Rails 3 just has more features than it used to have. If you want to use more features, the features are there for you. If not, you can ignore them.
But as Heroku doesn't provide any proxying it is upon every developer to implement something like this. Though doing it takes probably less than an hour, so compared to earlier times it is incredibly easy.
And someone else already mentioned that this is not something you would do from day one. The first deployment (especially with Heroku) is incredibly easy, but there is a lot to build upon once you have that application up and running.
# articles.css.scss
body#articles {
/* We display title in LARGE RED TEXT in articles controller. */
h2 {
font-size: 24px;
color: red;
}
&.index {
/* Oh noes we don't really want LARGE RED TEXT here. */
h2 { font-size: 16px; }
}
}
All my projects now started this way. It's very maintainable.In the footer of every page:
$(document).ready(function() {
if (V.Views.orders_index) { V.Views.orders_index(); }
}
Where "V.Views.orders_index" is basically "${controller}_${index}". Thus you just need to actually define that function in an included JS and voila, thats your calling hook and your JS is invoked.