Jekyll - Kesalahan Saat Menjalankan 'Jekyll Serve'

EDIT: Temukan jawabannya (lihat jawaban saya di bawah!). Ini melibatkan penggunaan versi 1.4.2, bukan 1.4.3, jadi jika ada yang punya ide untuk membuat 1.4.3 berfungsi, itu juga bisa membantu. Terima kasih!

EDIT 2: Berkat komentar di bawah, sepertinya 1.4.3 memang mengalami masalah saat dijalankan di windows. https://github.com/jekyll/jekyll/issues/1948

Saya baru saja mengatur jekyll di komputer windows 7 saya. Saya telah menginstal Ruby bersama dengan paket dev.

Saya telah menjalankan gem install jekyll dan selesai dengan sukses. Saya telah membuat situs baru sesuai dokumentasi jekyll.

Masalah yang saya alami terjadi ketika saya mencoba menjalankan jekyll serve. Silakan temukan di bawah keluaran kesalahan.

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)>

Saya telah melihat-lihat tetapi saya seorang pemula dengan Ruby, jadi saya tidak tahu apa yang harus dicari atau bagaimana menemukan kesalahan di sini. Bantuan apa pun akan sangat dihargai.

Terima kasih,

Joe


person Joe    schedule 15.01.2014    source sumber
comment
Bisakah Anda mencoba situs pengujian situs baru (tanpa tanda hubung)?   -  person svoop    schedule 15.01.2014
comment
Terima kasih atas sarannya @svoop. Saya mencobanya tetapi tidak berhasil, kesalahan yang sama.   -  person Joe    schedule 15.01.2014
comment
Masalah yang sama juga terjadi dengan 'jekyll build'.   -  person Jesslyn    schedule 29.01.2014


Jawaban (3)


Menjawab pertanyaan saya sendiri, saya berhasil menemukan solusi.

Tampaknya ini merupakan masalah dengan Jekyll versi 1.4.3. Untuk memperbaiki masalah ini saya menghapus jekyll dan menginstal versi 1.4.2.

gem uninstall jekyll

gem install jekyll --version "=1.4.2"

Melakukan ini dan semuanya akan berfungsi dengan baik jika Anda memiliki masalah yang sama seperti saya di windows.

Saya rasa ini karena versi 1.4.3 masih baru (dirilis pada tanggal 13) dan tidak stabil di windows.

person Joe    schedule 15.01.2014
comment
Terima kasih Joe. FWIW Saya ingin menggunakan Jekyll untuk melihat pratinjau halaman github saya sebelum saya mendorongnya. Artinya, setelah mengikuti instruksi mereka, saya perlu mengubah referensi ke Jekyll yang ditemukan di file yang dihasilkan bernama Gemfile.Lock. setelah saya melakukan hal ini mulai bekerja untuk saya secara lokal. - person Rory Becker; 15.01.2014
comment
@RoryBecker Saya bisa build dan serve, tapi serve --watch memberi saya kesalahan. Apakah ini ada hubungannya dengan apa yang Anda katakan? Karena saya tidak menemukan referensi jekyll di file Gemfile.Lock. - person kleinfreund; 18.01.2014
comment
Saya memiliki masalah yang sama dengan jekyll serve --watch. Anda perlu memasang beberapa permata lain untuk itu. Saya pikir permata itu bernama listener tapi saya tidak 100% yakin akan hal itu. - person Joe; 19.01.2014
comment
Adakah orang di sini yang mengangkat masalah terkait Jekyll untuk ini? Ini adalah solusinya - tetapi mungkin memerlukan laporan bug. - person Danny Staple; 07.02.2014
comment
Saya yakin ini muncul di Jekyll (Lihat tautan github di pertanyaan utama saya.) Tampaknya mereka mengatakan akan memperbaikinya untuk versi 2.0.0. - person Joe; 07.02.2014

Baru saja menemukan masalah yang sama dengan plugin Jekyll "Category Archive Generator" (https://github.com/shigeya/jekyll-category-archive-plugin)

Kemungkinan besar Anda memiliki plugin - di folder _plugins - yang menggunakan metode File.join(). misalnya File.join('/', dest, @dir, @category_dir_name, 'index.html')

Ubah ini dengan menghapus elemen pertama yang memberi Anda File.join(dest, @dir, @category_dir_name, 'index.html')

person serverdude    schedule 15.01.2014
comment
Terima kasih atas jawabannya, sayangnya saya belum menginstal plugin sama sekali. Folder _plugins tidak ada di sana, dan saya baru saja menginstal. - person Joe; 15.01.2014
comment
Dengan jawaban Anda sebelumnya dan github.com/jekyll/jekyll/issues/1948 saya mengerti bahwa pelakunya adalah 1.4.3 itu sendiri. - person serverdude; 15.01.2014
comment
Saya telah melihat kode sumber dari permata, yaitu C:/Ruby193/lib/ruby/gems/1.9.1/gems/jekyll-1.4.3/lib/jekyll/ sepertinya metode destination di post.rb dan page.rb tidak cocok dengan yang ada di GitHub github.com/jekyll/jekyll/blob/master/lib/jekyll/post.rb dan github.com/jekyll/jekyll/blob/master/lib/jekyll/page.rb Jika Anda menukarnya di internal permata Anda, maka 1.4.3 berfungsi. Anda dapat menghapus metode di post.rb dan page.rb jika Anda menambahkan metode yang benar ke convertible.rb - person serverdude; 16.01.2014

Saya memiliki masalah yang sama di Ubuntu Precise 12.04. Masalahnya adalah saya telah menginstal ruby1.8. Saya juga telah menginstal ruby1.9.1. Saya menghapus ruby1.8, dan kemudian Jekyll menginstalnya dengan baik.

person Berend de Boer    schedule 21.01.2014