Jekyll - เกิดข้อผิดพลาดในการเรียกใช้ 'Jekyll Serve'

แก้ไข: พบคำตอบ (ดูคำตอบของฉันด้านล่าง!) มันเกี่ยวข้องกับการใช้เวอร์ชัน 1.4.2 แทน 1.4.3 ดังนั้นหากใครมีแนวคิดในการทำให้ 1.4.3 ใช้งานได้ ก็อาจเป็นประโยชน์เช่นกัน ขอบคุณ!

แก้ไข 2: ขอบคุณความคิดเห็นด้านล่าง ดูเหมือนว่า 1.4.3 จะมีปัญหาเมื่อทำงานบน windows https://github.com/jekyll/jekyll/issues/1948

ฉันเพิ่งติดตั้ง jekyll บนคอมพิวเตอร์ที่ใช้ Windows 7 ของฉัน ฉันติดตั้ง Ruby พร้อมกับ dev pack แล้ว

ฉันวิ่งไปแล้ว gem install jekyll และก็สำเร็จด้วยดี ฉันได้สร้างไซต์ใหม่ตามเอกสารของ jekyll

ปัญหาที่ฉันพบเกิดขึ้นเมื่อฉันพยายามเรียกใช้ jekyll serve โปรดดูผลลัพธ์ข้อผิดพลาดด้านล่าง

PS C:\jekyll\test-site> jekyll serve --trace
Configuration file: C:/jekyll/test-site/_config.yml
        Source: C:/jekyll/test-site
   Destination: C:/jekyll/test-site/_site
  Generating... C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir': Invalid argument - C:/jekyll/test-site/_site/C: (Errno::EINVAL)
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:247:in `fu_mkdir'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:221:in `block (2 levels) in mkdir_p'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:219:in `reverse_each'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:219:in `block in mkdir_p'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:205:in `each'
    from C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:205:in `mkdir_p'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/convertible.rb:168:in `write'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:259:in `block in write'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:397:in `block (2 levels) in each_site_file'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:396:in `each'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:396:in `block in each_site_file'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:395:in `each'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:395:in `each_site_file'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:259:in `write'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/site.rb:41:in `process'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/command.rb:18:in `process_site'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/commands/build.rb:23:in `build'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/commands/build.rb:7:in `process'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/bin/jekyll:97:in `block (2 levels) in <top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/command.rb:180:in `call'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/command.rb:180:in `call'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/command.rb:155:in `run'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/runner.rb:402:in `run_active_command'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/runner.rb:78:in `run!'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/delegates.rb:11:in `run!'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/commander-4.1.5/lib/commander/import.rb:10:in `block in <top (required)>

ฉันได้ดูไปรอบๆ แล้ว แต่ฉันเป็นมือใหม่กับ Ruby ดังนั้นฉันจึงไม่รู้ว่าจะต้องค้นหาอะไรหรือจะค้นหาข้อผิดพลาดที่นี่ได้อย่างไร ความช่วยเหลือใด ๆ จะได้รับการชื่นชมมาก

ขอบคุณ,

โจ


person Joe    schedule 15.01.2014    source แหล่งที่มา
comment
คุณลองไซต์ทดสอบไซต์ใหม่ (ไม่มีเส้นประ) ได้ไหม   -  person svoop    schedule 15.01.2014
comment
ขอบคุณสำหรับคำแนะนำ @svoop ฉันลองทำแล้วแต่ไม่มีโชค มีข้อผิดพลาดเดียวกัน   -  person Joe    schedule 15.01.2014
comment
ปัญหาเดียวกันนี้เกิดขึ้นกับ 'jekyll build' ด้วย   -  person Jesslyn    schedule 29.01.2014


คำตอบ (3)


เมื่อตอบคำถามของตัวเอง ฉันก็สามารถหาทางแก้ไขได้

ดูเหมือนว่าจะเป็นปัญหากับ Jekyll เวอร์ชัน 1.4.3 เพื่อแก้ไขปัญหา ฉันถอนการติดตั้ง jekyll และติดตั้งเวอร์ชัน 1.4.2 แล้ว

gem uninstall jekyll

gem install jekyll --version "=1.4.2"

การทำเช่นนี้และทุกอย่างน่าจะทำงานได้ดีหากคุณมีปัญหาเดียวกันกับฉันบน windows

ฉันเดาว่าเป็นเพราะเวอร์ชัน 1.4.3 เป็นเวอร์ชันใหม่ (เปิดตัวเมื่อวันที่ 13) และไม่เสถียรบน windows

person Joe    schedule 15.01.2014
comment
ขอบคุณโจ FWIW ฉันต้องการใช้ Jekyll เพื่อดูตัวอย่างหน้า GitHub ของฉันก่อนที่จะผลักมัน นั่นหมายความว่าหลังจากทำตามคำแนะนำของพวกเขาแล้ว ฉันจำเป็นต้องแก้ไขการอ้างอิงถึง Jekyll ที่พบในไฟล์ที่สร้างขึ้นชื่อ Gemfile.Lock หลังจากที่ฉันทำสิ่งนี้ก็เริ่มได้ผลสำหรับฉันในท้องถิ่น - person Rory Becker; 15.01.2014
comment
@RoryBecker ฉันสามารถ build และ serve ได้ แต่ serve --watch ทำให้ฉันเกิดข้อผิดพลาด สิ่งนี้เกี่ยวข้องกับสิ่งที่คุณพูดหรือไม่? เพราะฉันไม่พบการอ้างอิงถึง jekyll ในไฟล์ Gemfile.Lock - person kleinfreund; 18.01.2014
comment
ฉันมีปัญหาเดียวกันกับ jekyll serve --watch คุณต้องติดตั้งอัญมณีอื่น ๆ เพื่อสิ่งนั้น ฉันคิดว่าอัญมณีชื่อ listener แต่ฉันไม่แน่ใจ 100% ในเรื่องนั้น - person Joe; 19.01.2014
comment
มีใครแจ้งปัญหาที่เกี่ยวข้องกับ Jekyll เกี่ยวกับเรื่องนี้บ้างไหม มันเป็นวิธีแก้ปัญหา - แต่อาจต้องมีรายงานข้อผิดพลาด - person Danny Staple; 07.02.2014
comment
ฉันเชื่อว่ามันถูกเลี้ยงดูมาใน Jekyll (ดูลิงก์ github ในคำถามหลักของฉัน) ดูเหมือนว่าพวกเขาบอกว่าจะแก้ไขให้เป็นเวอร์ชัน 2.0.0 - person Joe; 07.02.2014

เพิ่งพบปัญหาเดียวกันกับปลั๊กอิน "Category Archive Generator" ของ Jekyll (https://github.com/shigeya/jekyll-category-archive-plugin)

เป็นไปได้มากว่าคุณมีปลั๊กอิน - ในโฟลเดอร์ _plugins - ซึ่งใช้เมธอด File.join() เช่น. File.join('/', dest, @dir, @category_dir_name, 'index.html')

แก้ไขสิ่งนี้โดยการลบองค์ประกอบแรกโดยเหลือ File.join(dest, @dir, @category_dir_name, 'index.html')

person serverdude    schedule 15.01.2014
comment
ขอบคุณสำหรับคำตอบ น่าเสียดายที่ฉันไม่มีปลั๊กอินติดตั้งเลย โฟลเดอร์ _plugins ไม่อยู่ที่นั่น และฉันกำลังติดตั้งใหม่ - person Joe; 15.01.2014
comment
ด้วยคำตอบก่อนหน้าของคุณและ github.com/jekyll/jekyll/issues/1948 ฉันเข้าใจแล้ว ว่าผู้ร้ายอยู่ที่ 1.4.3 ในตัวมันเอง - person serverdude; 15.01.2014
comment
ฉันได้ดูซอร์สโค้ดจากอัญมณีแล้ว เช่น C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/ มันไม่ดูเหมือนกับว่าวิธีการ destination ใน post.rb และ page.rb ตรงกับที่ GitHub github.com/jekyll/jekyll/blob/master/lib/jekyll/post.rb และ github.com/jekyll/jekyll/blob/master/lib/jekyll/page.rb หากคุณต้องแลกพวกมันในอัญมณีภายในของคุณ แสดงว่า 1.4.3 ใช้งานได้ คุณสามารถลบวิธีการใน post.rb และ page.rb ได้ หากคุณเพิ่มวิธีการที่ถูกต้องใน convertible.rb - person serverdude; 16.01.2014

ฉันมีปัญหาเดียวกันบน Ubuntu Precise 12.04 ปัญหาคือฉันติดตั้ง Ruby1.8 แล้ว ฉันยังติดตั้ง Ruby1.9.1 ไว้ด้วย ฉันลบ Ruby1.8 ออกแล้ว Jekyll ก็ติดตั้งได้ดี

person Berend de Boer    schedule 21.01.2014