Создание статического веб-сайта
Мне нужен простой способ создания статических веб-страниц, чтобы я мог обслуживать их с помощью Apache или Nginx. В настоящее время я использую инструмент сборки SproutCore (Abbot) для создания статических страниц, но это немного громоздко, поскольку он предназначен для создания приложений SproutCore, а не HTML-страниц без SproutCore.
вот мои требования:
- Javascript должен быть объединен и уменьшенная
- CSS-файлы должны быть объединены
- каждое изображение / CSS / Актив Javascript должен иметь уникальный URL для лучшего кэширования (строки запроса недостаточно)
- URL-адрес Актива должен отличаться только тогда, когда он действительно меняется
- локализация поддержка тщательной HTML, CSS, Javascript и файлов изображений
- хороший движок шаблонов с макетов, фрагментов и т. д.
вот возможные решения, которые я нашел:
- создайте сайт с помощью Ruby on Rails, а затем получите все ресурсы с помощью wget http://usefulfor.com/ruby/2009/03/23/use-rails-to-create-a-static-site-rake-and-subversion/
- Использовать Посредника:http://middlemanapp.com
какие мысли по этому поводу?
после длительного процесса оценки я решил использовать посредника. Он делает трюк, и мне нравится его простота и тот факт, что я могу использовать с ним существующие компоненты стойки.
С Уважением,
Пекка Маттила
6 ответов
Я создатель Middleman и хотел бы помочь вам освоиться с использованием Middleman. Моя главная цель-дать пользователям власть Rails, но сосредоточена на статическом развитии. Часть фактического кода Middleman-это упрощенные версии Ab
вот что я делаю:
Ruby на Rails 3 с Высокое Напряжение Gem, что делает его легко для обслуживания статического тела страницы с использованием общих шаблонов. Это требует простая запись в маршрутах (и вы можете использовать пространства имен для создания иерархия.)
Apache обратный прокси для автономного пассажира (который использует nginx I believe) для запуска приложения Rails. в этой статье описывается конфигурировать он.
автономный пассажир будет читать URL-адрес, посмотреть, есть ли соответствующий файл в / public с .html на нем и служит этому. Если он не найден, он вызовет Rails и сгенерирует страницу. По сути, кэширование страниц, с возможностью публикации ваших URL-адресов с или без .формат html. В пассажирских документах есть раздел о кэшировании страниц.
Что касается объединения и минимизации js и css,вот хороший stackoverflow нить.
рельсы имеет отличные реализация i18n/команде l10n поддержки.
Rails template engine очень приятно работать. И вы можете использовать HAML, если хотите.
для ваших 3-го и 4-го пунктов я немного смущен. Вы хотите, чтобы css и js объединились, но затем вы хотите, чтобы каждый имел свой собственный URL. В Rails директива "cache => true" для тегов активов заботится о добавлении параметра строки запроса, который изменяется, когда содержимое делает, что является довольно традиционной схемой. Я не уверен, в каком контексте вы работаете, где это не сработает. Любой CDN, который я когда-либо использовал, отлично работает с этим, как и веб-сервер, правильно реализующий спецификацию HTTP. В любом случае, изменение фактического пути или файла в URL-адресе потребует изменения всех ссылок на него. Может, я неправильно понял?
обезьянка имеет движок шаблона, который вам нужен, я думаю. Подумайте об этом как о младшем брате посредника Scala. Пока еще нигде не было такого зрелого или богатого, но мы доберемся туда в конце концов. Текущая инкарнация поддерживает HAML, Jade, SSP для макетов, Markdown для контента и несколько других вещей.
без какого-либо специального порядка!--1-->
- Джекил - довольно просто
- посредник - много функции
- nanoc - много функции
- стат - использовать контроллеры
- staticmatic
- Фрэнк
- gumdrop
- Рубин на рельсах + с wget
- ruby on rails + высокое напряжение + обратный прокси apache
вы, вероятно, также должны проверить модуль mod_pagespeed. Это по крайней мере даст вам это:
- Javascript должен быть объединен и уменьшенная
- CSS-файлы должны быть объединены
- каждый ресурс image / CSS / Javascript должен иметь уникальный URL для лучшего кэширования (строки запроса недостаточно)
- URL-адрес Актива должен отличаться только тогда, когда он действительно меняется
Это не даст вам это:
- локализация поддержка тщательной HTML, CSS, Javascript и файлов изображений
- хороший движок шаблонов с макетов, фрагментов и т. д.
вы можете посмотреть на docpad. Это написано в coffeescript и работает на Nodejs. Это документ на основе, где вы пишете некоторые документы и макеты, он будет компилировать их и писать их в каталоге out. Вы можете писать документы на многих языках через Плагины
Он также поддерживает несколько уровней компиляции файла. Например,eco
до markdown
to html
.
еще одна интересная особенность о том, что вы можете запросить другие документы, генерируемые в документе. Например на первой странице, у вас есть что-то вроде этого, чтобы получить все посты блог:
database.findAll({url : /posts/})
который вернет все документы, имеющие сообщения в их url.