Jekyll serve --baseurl '' возвращает ошибку: не может дублировать TrueClass. Используйте --trace для просмотра backtrace

Я использую gh-страницы для депоимента для своего сайта на jekyll.

Я пытался разработать без необходимости удалять / добавлять пути {{ site.baseurl }} обратно перед всеми файлами css, js и img для моих источников каждый раз, когда я хочу обслуживать jekyll локально.

Я немного застрял здесь, так как все говорят, чтобы передать пустую строку, как это:

jekyll serve --baseurl ""

Но когда я делаю это, он генерирует сайт нормально, но возвращает:

error: can't dup TrueClass. Use --trace to view backtrace

Не могу понять, почему я получаю эту ошибку.

Мой _config.yml выглядит примерно так:

url: "http://myjekyllsite.github.io/"
baseurl: "/my-baseurl"

Я связал свои файлы js и css, а также добавил путь к моим изображениям следующим образом:

<img src="{{ site.baseurl }}/img/image1.jpg">

Единственный плагин, который я использую - это jekyll-sass

Есть идеи?

1 ответ

Решение

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

В руководстве для gh-страниц для Джекилла здесь: http://jekyllrb.com/docs/github-pages/

Они специально заявляют, что не должны иметь косой черты в вашем baseurl в вашем _config.yml. Я обнаружил, что не следую их советам и использую косую черту в _config.yml примерно так:

baseurl: /my-path/

Я мог бы сделать так, чтобы все мои другие ссылки все еще использовали путь {{ site.baseurl }}, без косой черты и использования:

jekyll serve --baseurl '/' -w

Так что все мои пути работают просто отлично. Пример:

<link rel="stylesheet" href="{{ site.baseurl }}css/sytle.css">

Таким образом, это работает, когда я нажимаю на gh-страницы тоже.

Другие вопросы по тегам