지킬 게시물이 생성되지 않았습니다.


100

Jekyll 사이트에 새 게시물을 추가하려고하는데를 실행할 때 생성 된 페이지에서 볼 수 없습니다 jekyll serve.

Jekyll 게시물이 생성되지 않는 일반적인 이유는 무엇입니까?

답변:


230

1
in future:true뒤에 공백없이 사용 하면 ERR : 구성 파일 : (INVALID)가 발생합니다. 대부분 대신 사용됩니다. :_config,ymlfuture: true
yaitloutou

또 다른 가능한 이유는 .markdown파일 이름에 확장자를 추가하는 것을 잊었 기 때문입니다 . 나는 그것 때문에 내 인생의 5 분을 낭비했기 때문에 이것을 안다.
H2ONOCK

정말 고맙습니다! 날짜 필터가 있다는 것을 알기 전까지 내 게시물이 표시되지 않는 이유를 30 분 동안 검색했습니다 ... (15 분 후에는 "마 법적으로"작동합니다 ...). 미래 옵션을 추가했으며 모든 것이 예상대로 작동합니다. 내 의견으로는 true가 기본값이어야합니다.
Matthias Kleine

1
나는 무엇을 놓치고있다. 내 게시물 제목에 콜론이 있는데 괜찮습니까? raw.githubusercontent.com/alexharv074/alexharv074.github.io/… 여기에 괜찮아 보입니까? alexharv074.github.io
Alex Harvey

1
@AlexHarvey 댓글 주셔서 감사합니다! 이것은 더 이상 문제가되지 않는 것 같습니다. 내 대답을 업데이트했습니다.
aronisstav

19

jekyll build --verbose빌드 프로세스를 자세히보기 위해 사용할 수 있습니다 .

Exmaple 출력 :

  Logging at level: debug
Configuration file: /home/fangxing/fffx.github.io/_config.yml
  Logging at level: debug
         Requiring: jekyll-archives
         Requiring: jekyll-livereload
         Requiring: kramdown
            Source: /home/fangxing/fffx.github.io
       Destination: /home/fangxing/fffx.github.io/_site
 Incremental build: enabled
      Generating... 
       EntryFilter: excluded /Gemfile
       EntryFilter: excluded /Gemfile.lock
           Reading: _posts/2018-01-14-new-post.md
           Reading: _posts/2014-01-01-example-content.md
           Reading: _posts/2014-01-02-introducing-lanyon.md
           Reading: _posts/2017-11-21-welcome-to-jekyll.markdown
           Reading: _posts/2018-01-14-boot-android-on-charge.md
           Reading: _posts/2013-12-31-whats-jekyll.md
          Skipping: _posts/2018-01-14-boot-android-on-charge.md has a future date
        Generating: Jekyll::Archives::Archives finished in 0.000122873 seconds.
        Generating: JekyllFeed::Generator finished in 0.000468846 seconds.
        ...

로그에서 jeklly 2018-01-14-boot-android-on-charge.md는 미래 날짜가 있기 때문에 건너 뛰었 습니다.


6

한 가지 가능한 이유는 date서문에 지정된 시간대 오프셋이 포함되어 있지 않기 때문입니다.이 경우 기본적으로 로컬 시스템의 시간대가 아닌 UTC로 설정됩니다. UTC가 현재 현지 시간대 인 BST를 "잡을"때까지 한 시간을 낭비했습니다.

나는 이것에 대한 확실한 답을 찾지 못했지만 앞부분의 날짜는 시간대 오프셋 (생략하면 기본값은 0)과 함께 UTC로 제공되어야한다고 생각합니다.

세계 어디에 있든 .NET의 설정에 관계없이 date: 2018-05-03 12:34:27 UTC에서도 마찬가지 입니다 .timezone_config.yml

따라서 다음과 같이 날짜 시간을 지정해야합니다.

date: 2018-05-03 12:34:27 +0100

1
형식 date: 2018-05-03 12:34:27 +01:30도 작동하는 것 같습니다. 추가 콜론에 유의하십시오.
YinglaiYang

이것이 문제라는 것을 깨닫는 데 10 분을 낭비했습니다. 감사!
samisnotinsane

2

또는 _site 폴더가 아닌 게시물 목록이있는 블로그의 기본 페이지에서 직접 보고있는 경우 브라우저 캐시 일 수도 있습니다 .


2

다음 규칙을 표현하는 내 블로그에 대한 Rspec 테스트를 작성했습니다.

require 'spec_helper'
require 'yaml'

# Documented at https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/
post_regex = %r!^(?:.+/)*(\d{2,4}-\d{1,2}-\d{1,2})-(.*)(\.[^.]+)$!

def date_in_front_matter(date)
  return date if date.is_a?(Date)
  return date.to_date if date.is_a?(Time)
  return Date.parse(date) if date.is_a?(String)
end

describe 'posts' do
  Dir.glob("_posts/*md").each do |file|
    basename = File.basename(file)

    context basename do
      front_matter = YAML.load(File.read(file).split(/---/)[1])

      it 'filename must match documented post regex' do
        expect(basename).to match post_regex
      end

      it 'date in file name same day as date in front matter' do
        date_in_file_name = Date.parse(post_regex.match(basename).captures[0])
        expect(date_in_front_matter(front_matter['date'])).to eq date_in_file_name
      end

      it 'title in front matter should not contain a colon' do
        expect(front_matter['title']).to_not match /:/
      end

      it 'front matter should not have published: false' do
        expect(front_matter['published']).to_not be false
      end
    end
  end
end

날짜 등의 오타로 인해 많은 시간을 낭비하고 있었기 때문에 다른 사람들에게 유용 할 수 있습니다.

Rspec 구성의 나머지 부분과 함께 이러한 테스트는 여기 에서 볼 수 있습니다 .


2

이유를 하나 더 추가하기 위해 기사를에서 _drafts로 이동할 때 _post때때로_site 기사를 다시 생성 있습니다.

제 경우에는 종종 _site 재생성 전에 완전히 삭제되지 않아 새 기사가 나타나지 않는 .

어쨌든 rm -rf _sitebundle exec jekyll serve작품 :)


1

파일을 추적 할 수없고 --verbose파일이 자동으로 무시 collections_dir되면 config.yml파일 에서 제거해보십시오 . 그것은 나를 위해 문제를 해결했습니다.


0

내 게시물도 내 이름에 점을 사용했다는 오류가 표시되지 않았습니다 2017-10-18-test.2.md.
허용되지 않습니다 2017-10-18-test2.md. 을 (를) 사용해야 합니다.


0

앞부분을 확인 jekyll build --verbose했는데 모든 것이 잘 보이고 아무것도 드러나지 않는 경우 (제 경우에는 파일이 전혀 존재하지 않는 것처럼 작동하고 제외 된 것으로 나열하지 않은 것 같음) 인코딩을 확인하십시오. 파일의. 분명히 UTF-8서명이 없어야합니다. 그것은 UTF-8 BOM(또는 UTF-8 with Signature일부 텍스트 편집기에서 부르는 것처럼) 조용히 무시됩니다. 설상가상으로 일부 편집자는 두 유형을 모두으로 표시 UTF-8하여 차이점을 찾기가 더 어렵습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.