2017-01-23 5 views
2

Я создал файл settings.yml в папке _data. Это также содержит мой baseurl: /run-and-roll.В GitHub размещен сайт Jeykll. Фоновые изображения внутри css не отображаются?

Таким образом, я вставил {{ site.data.settings.baseurl }} перед моими активами. Файл css загружается вместе с изображениями, которые определены в html. Однако любые фоновые изображения, запрошенные в css, не отображаются?

https://granttransition.github.io/run-and-roll/

+0

Возможно, добавьте конечную косую черту в 'baseurl'? –

+0

Учебная косая черта уже соответствует {{site.data.settings.baseurl}}. Таким образом, у моих фоновых изображений заголовка есть background-image: url ({{site.data.settings.baseurl}}/assets/img/runner.jpg) ;. По какой-то причине GitHub, по-видимому, выводит URL-адрес/run-and-roll повсюду, запустите css, который выводится как {{site.data.settings.baseurl}}/assets/img/... –

+0

Почему вы не добавили 'baseurl' в' _config.yml'? Можете ли вы привести пример текущего поведения? – marcanuy

ответ

0

Использование {{ site.baseurl }} является Джекил конвенции, перемещая его в файл данных не является хорошей идеей.

Тем не менее с вашей точки зрения css, путь до runner.jpg всегда будет ../assets/img/runner.jpg. Не нужно использовать baseurl.

+0

Даже на живом сайте? –

+0

Да! '../ assets/img/runner.jpg' - это путь к вашему стилю, который никогда не будет двигаться. –

+0

Последующий совет, все еще не отображающий фоновые изображения? https://granttransition.github.io/run-and-roll/. https://www.dropbox.com/s/pbtoaz630fbmllf/Screenshot%202017-01-24%2015.22.21.png?dl=0 –

1

Каждая переменная конфигурации, которая появляется в https://jekyllrb.com/docs/configuration/, имеет смысл держать их там.

Обычно шаблоны приготавливают базовый url при генерации некоторых URL-адресов, таких как активы, используя {{site.baseurl}}, поэтому, если вы вручную установите его из другого места, он не будет использоваться по умолчанию.

То, что вы прочитали, является хорошей практикой для настройки параметров и конфигурации для каждой другой конфигурации, не связанной точно с встроенными переменными jekyll, что это хорошая практика поместить их в файлы данных, поэтому вы сохраняете ваш _conf.yml как можно более ясно, как официальные документы suggests, что делает легче поддерживать и обновлять свой экземпляр Jekyll:

в дополнении к встроенному в переменных доступен Джекиле, вы можете указать свои собственные данные, можно получить через систему шаблонов Liquid .

Jekyll поддерживает загрузку данных из файлов YAML, JSON и CSV, расположенных в каталоге _data. Обратите внимание, что файлы CSV должны содержать строку заголовка.

Эта мощная функция позволяет избежать повторения в ваших шаблонах и задать параметры сайта без изменения _config.yml.

Плагины/темы также могут использовать файлы данных для настройки конфигурации переменных.

1

TL; DR

просто положить baseurl в _config.yml, как предложено в других ответах :)

б/с, если вы используете Джекил с Github страницы, а затем, если site.url или site.baseurl не указаны, в CNAME или config.yml, для production build.то они будут установлены автоматически github page generator

Объяснение

из github page generator кода-источника:

# Set `site.url` and `site.baseurl` if unset and in production mode. 
    def set_url_and_baseurl_fallbacks! 
    return unless Jekyll.env == "production" 

    repo = drop.send(:repository) 
    site.config["url"] ||= repo.url_without_path 
    if site.config["baseurl"].to_s.empty? && !["", "/"].include?(repo.baseurl) 
     site.config["baseurl"] = repo.baseurl 
    end 
    end 

среда сборки по умолчанию для Джекила, является development. Поэтому пока вы работаете на своем сайте локально. все будет работать так, как вы ожидаете. даже если положить baseurl в другом месте, чем _config.yml

но страница стороны GitHub, веб-сайт создан с помощью этой команды:

JEKYLL_ENV=production jekyll build 

и site.url и site.baseurl отменяются.

в вашем случае, если вы используете {{ site.data.settings.baseurl }} доступ к некоторой странице, и он установлен в значение типа ('' или '/') вы можете не заметить навигационную проблему. bat assets path для css и js не будет работать должным образом.

Итак, просто положите baseurl в _config.yml, реорганизуйте свой макет и страницы соответственно. и с тобой все будет хорошо.

сторона примечание: как указано в ответе @David, это соглашение о jekyll для установки веб-сайта. в _config.yml, но если вы хотите поместить их в другое место, вы можете. просто убедитесь, что объявите их для сборки production как будет.

Смотри также: Clearing Up Confusion Around baseurl -- Again

UPDATE

даже после перемещения сайта на GitHub проекта repo: /<user-name>.github.io/<repo-name> вместо пользователя (или организации) РЕПО: /<user-name>.github.io. вам необходимо установить следующее:

или просто удалить его. так как вы обслуживаете свой веб-сайт из основного хранилища (см. above refence)

 Смежные вопросы

  • Нет связанных вопросов^_^