Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Here's what I do:</p> <ul> <li><p>Ruby on Rails 3 with the <a href="http://rubygems.org/gems/high_voltage/" rel="nofollow noreferrer">High Voltage Gem</a>, which makes it easy to serve a static page body using the common templates. It requires a simple entry in the routes (and you can use namespaces to create a hierarchy). </p></li> <li><p>Apache reverse proxy to stand-alone Passenger (which uses nginx I believe) to run the Rails app. <a href="http://blog.phusion.nl/2010/09/21/phusion-passenger-running-multiple-ruby-versions/" rel="nofollow noreferrer">This article</a> describes how to configure it.</p></li> </ul> <p>Stand-alone passenger will read the URL, see if there is a corresponding file in /public with the .html on it, and serve that. If not found, it will invoke Rails and generate the page. In essence, page caching, with the option of publishing your URLs with or without the .html. There is a section in the Passenger docs about page caching specifically.</p> <p>As far as combining and minifying js and css, <a href="https://stackoverflow.com/questions/1793222/rails-and-javascript-minifier-and-aggregator">here's a good stackoverflow thread</a>.</p> <p>Rails has excellent i18n/l10n support.</p> <p>Rails template engine is very nice to work with. And you can use HAML if you prefer.</p> <p>For your 3rd and 4th points, I'm a little confused. You want css and js combined, but then you want each to have it's own URL. In Rails, the "cache => true" directive on asset tags takes care of adding a query string parameter that changes when the content does, which is a fairly traditional scheme. I'm not sure what context you are working in where that would not work. Any CDN I've ever used works fine with that, as does an web server implementing the HTTP spec correctly. Anyway, changing the actual path or file in the URL would require changing all references to it. Maybe I'm misunderstanding?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload