Вот что я делаю:
Ruby on Rails 3 с High Voltage Gem , что делает его легким
обслуживать статическое тело страницы, используя общие шаблоны. Это требует
простая запись в маршрутах (и вы можете использовать пространства имен для создания
иерархии).
Обратный прокси-сервер Apache для автономного пассажира (который использует nginx I
поверьте) запустить приложение Rails. Эта статья описывает, как
настроить его.
Автономный пассажир прочитает URL-адрес, проверит, существует ли соответствующий файл в / public с .html, и обработает его. Если он не найден, он вызовет Rails и сгенерирует страницу. По сути, кеширование страниц с возможностью публикации ваших URL с или без .html. В документации для пассажиров есть раздел, посвященный кешированию страниц.
Что касается объединения и минимизации js и css, вот хороший поток stackoverflow .
Rails имеет отличную поддержку i18n / l10n.
С движком шаблонов Rails очень приятно работать. И вы можете использовать HAML, если хотите.
Что касается ваших 3-го и 4-го пунктов, я немного запутался. Вы хотите, чтобы css и js были объединены, но затем вы хотите, чтобы у каждого был свой URL. В Rails директива cache => true для тегов ресурсов заботится о добавлении параметра строки запроса, который изменяется при изменении содержимого, что является довольно традиционной схемой. Я не уверен, в каком контексте вы работаете, где это не сработает. Любой CDN, который я когда-либо использовал, прекрасно с этим работает, как и веб-сервер, корректно реализующий спецификацию HTTP. В любом случае, изменение фактического пути или файла в URL-адресе потребует изменения всех ссылок на него. Может я недопонимаю?