Подтвердить что ты не робот

Создание статического веб-сайта

Мне нужен простой способ создания статических веб-страниц, чтобы я мог обслуживать их с помощью Apache или Nginx. В настоящее время я использую инструмент сборки SproutCore (Abbot) для создания статических страниц, но это немного громоздко, поскольку он предназначен для создания приложений SproutCore, а не HTML-страниц без SproutCore.

Вот мои требования:

  • Javascript должен быть объединен и минимизирован
  • Файлы CSS должны быть объединены
  • Каждый ресурс image/CSS/Javascript должен иметь уникальный URL для лучшего кэширования (строка запроса недостаточно)
  • URL-адрес актива должен отличаться только тогда, когда он действительно изменяет
  • Поддержка локализации файлов HTML, CSS, Javascript и изображений
  • Хороший механизм шаблонов с макетами, частицами и т.д.

Вот возможные решения, которые я нашел:

Любые мысли об этом?

После длительного процесса оценки я решил использовать Middleman. Это делает трюк, и мне нравится его простота и тот факт, что я могу использовать с ним существующие компоненты Rack.

С наилучшими пожеланиями,

Пекка Маттила

4b9b3361

Ответ 1

Я создатель Миддмана и буду стремиться помочь вам стать удобным с помощью Миддмана. Моя основная цель - предоставить пользователям возможность Rails, но сосредоточена на статическом развитии. Некоторые из фактического кода Миддмана - это упрощенные версии Ab

Ответ 2

Вот что я делаю:

  • Ruby on Rails 3 с High Voltage Gem, что упрощает для обслуживания статического тела страницы с использованием общих шаблонов. Это требует простая запись в маршрутах (и вы можете использовать пространства имен для создания иерархии).

  • Apache обратный прокси-сервер для автономного пассажира (который использует nginx I верьте), чтобы запустить приложение Rails. В этой статье описывается, как настройте его.

Автономный пассажир будет читать URL-адрес, посмотреть, есть ли в нем файл файл в /public с помощью .html и обслуживать его. Если не найден, он вызовет Rails и сгенерирует страницу. По сути, кеширование страниц, с возможностью публикации ваших URL-адресов с или без .html. В документах Пассажира есть отдельный раздел о кешировании страниц.

Что касается объединения и минимизации js и css, fooobar.com/questions/322308/....

Rails имеет отличную поддержку i18n/l10n.

Механизм шаблонов Rails очень хорош для работы. И вы можете использовать HAML, если хотите.

Для ваших 3-го и 4-го пунктов я немного смущен. Вы хотите, чтобы css и js были объединены, но тогда вы хотите, чтобы каждый из них имел собственный URL. В Rails директива "cache = > true" в тегах активов заботится о добавлении параметра строки запроса, который изменяется, когда содержимое делает, что является довольно традиционной схемой. Я не уверен, в каком контексте вы работаете, где это не сработает. Любой CDN, который я когда-либо использовал, отлично работает с этим, как и веб-сервер, правильно реализующий спецификацию HTTP. В любом случае, изменение фактического пути или файла в URL-адресе потребует изменения всех ссылок на него. Может быть, я не понимаю?

Ответ 3

Monkeyman имеет механизм шаблона, который вам нужен, я думаю. Подумайте об этом, как маленький брат Scala. Нигде не было зрелого или богатого богатством, но мы все равно доберемся туда. Текущая инкарнация поддерживает HAML, Jade, SSP для макетов, Markdown для контента и пару других вещей.

Ответ 5

Вероятно, вы также можете проверить mod_pagespeed. Это, по крайней мере, даст вам следующее:

  • Javascript должен быть объединен и минимизирован
  • Файлы CSS должны быть объединены
  • Каждый ресурс image/CSS/Javascript должен иметь уникальный URL для лучшего кэширования (строка запроса недостаточно)
  • URL-адрес актива должен отличаться только тогда, когда он действительно изменяет

Это не даст вам этого:

  • Поддержка локализации файлов HTML, CSS, Javascript и изображений
  • Хороший механизм шаблонов с макетами, частицами и т.д.

Ответ 6

Вы можете посмотреть docpad. Он написан в coffeescript и работает на Nodejs, Это документ на основе, где вы пишете некоторые документы и макеты, он скомпилирует их и запишет их в каталог out. Вы можете писать документы на многих языках через plugins

Он также поддерживает многоуровневую компиляцию файлов. Например, от eco до markdown до html.

Еще одна замечательная особенность заключается в том, что вы можете запрашивать другие документы, сгенерированные в документе. Например, на первой странице у вас есть что-то вроде этого, чтобы получить все сообщения в блоге:

database.findAll({url : /posts/})

который вернет все документы, имеющие записи в своем URL-адресе.