Как добавить маршруты типа RESTful в Jekyll - PullRequest
7 голосов
/ 14 августа 2011

Корень сайта http://example.com правильно идентифицирует index.html и отображает его.Аналогичным образом я хочу, чтобы http://example.com/foo извлекли foo.html , присутствующий в корне каталога.Сайт, который использует эту функциональность - www.zachholman.com .Я видел его код в Github.Но все же я не могу найти, как это делается.Пожалуйста, помогите.

Ответы [ 2 ]

11 голосов
/ 05 февраля 2012

Эта функция фактически доступна в Jekyll.Просто добавьте следующую строку в ваш _config.yml:

permalink: pretty

Это позволит включить ссылки на сообщения и страницы без расширения .html, например,

  • /about/ вместо /about.html
  • /YYYY/MM/DD/my-first-post/ вместо YYYY-MM-DD-my-first-post.html

Однако вы теряете возможность настраивать постоянные ссылки ... и косая черта довольно уродлива.

Редактировать: похоже, что косая черта есть дизайн

2 голосов
/ 15 августа 2011

Нужно настроить сервер, а не jekyll.По умолчанию jekyll собирается создавать файлы с расширениями .html.Может быть способ обойти это, но вряд ли вы действительно захотите пойти по этому пути.Вместо этого вам нужно сообщить своему веб-серверу, что вы хотите, чтобы эти файлы обслуживались при вызове URL-адреса с базовым именем файла (без расширения).

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

Options +MultiViews

Если эта опция включена, когда Apache получает запрос на:

http://example.com/foo

Он будет обслуживать файл:

/foo.html

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

...