2013-05-11 71 views
6

我想讓傑基爾在Windows上工作,我沒有運氣。這是我第一次安裝/使用Ruby。Jekyll - 液體例外:無法加載這樣的文件 - yajl/2.0/yajl

  • 紅寶石版本:紅寶石2.0.0p0(2013年2月24日)[I386-的mingw32](http://rubyinstaller.org/

  • 化身版本:化身1.0.1

當我在_config.yml中將pygments設置爲false時,錯誤消失。

錯誤消息

D:\Code\Jekyll\test>jekyll serve 
Configuration file: D:/Code/Jekyll/test/_config.yml 
      Source: D:/Code/Jekyll/test 
     Destination: D:/Code/Jekyll/test/_site 
     Generating... Liquid Exception: cannot load such file -- yajl/2.0/yajl in 2013-05-11-welcome-to-jekyll.markdown 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/yajl-ruby-1.1.0-x86-mingw32/lib/yajl/yajl.rb:2:in `<top (required)>' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/yajl-ruby-1.1.0-x86-mingw32/lib/yajl.rb:1:in `<top (required)>' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pygments.rb-0.4.2/lib/pygments/popen.rb:3:in `<top (required)>' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pygments.rb-0.4.2/lib/pygments.rb:1:in `<top (required)>' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/tags/highlight.rb:52:in `render_pygments' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/tags/highlight.rb:45:in `render' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:106:in `block in render_all' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:93:in `each' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:93:in `render_all' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:82:in `render' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/template.rb:124:in `render' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/template.rb:132:in `render!' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/convertible.rb:77:in `render_liquid' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/convertible.rb:128:in `do_layout' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/post.rb:285:in `render' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:230:in `block in render' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:229:in `each' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:229:in `render' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:44:in `process' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/command.rb:18:in `process_site' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/commands/build.rb:23:in `build' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/commands/build.rb:7:in `process' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/bin/jekyll:83:in `block (2 levels) in <top (required)>' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/command.rb:180:in `call' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/command.rb:180:in `call' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/command.rb:155:in `run' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/runner.rb:402:in `run_active_command' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/runner.rb:66:in `run!' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/delegates.rb:7:in `run!' 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/import.rb:10:in `block in <top (required)>' 
Build Failed 
+0

您可能確定您已經運行'gem install bundler'和'bundle install'。 – 2013-05-11 16:40:23

+0

@EricWendelin - 從http://mwmanning.com/2011/11/29/Run-Your-Jekyll-Site-On-Heroku.html試用了gemspec,並在安裝後運行時出現同樣的問題:( – Malachi 2013-05-11 18:42:58

+3

似乎像這是一個版本兼容性問題:https://github.com/brianmario/yajl-ruby/issues/116 – scriptin 2013-05-11 20:11:46

回答

2

的問題是作爲評價提到@scriptin。

我安裝了ruby v 1.9.3,它解決了我的問題。

0

你可以通過手動編輯給出錯誤的文件來看看它是如何工作的。

RUBY_VERSION =〜/(\d+.\d+)/ 需要 「yajl」

2

只需在_config.yml添加以下行現在

highlighter: false 

瀏覽到本地主機:4000

0

其他提出的解決方案似乎可以關閉代碼高亮,或將其設置爲使用Rouge而不是Pygments。由於其更大的語言支持,我需要使用Pygments。

https://github.com/brianmario/yajl-ruby/issues/116所述,發生此問題是因爲預編譯的yajl不適用於Ruby 2.0。它需要編譯。要使此工作可以使用pygments:

  1. 卸載預編譯的yajl-ruby gem。
  2. 使用該github線程中顯示的語法安裝它。請注意,您可能需要指定版本。在我的情況下,Jekyll特別想要1.1.0,所以我使用這種語法安裝:

gem install yajl-ruby --platform = ruby​​ --version = 1.1。0

這樣做後,Jekyll工作沒有禁用代碼高亮或切換到胭脂。

1

今天我在試圖設置Octopress/Jekyll時遇到了類似的問題。

這是我找到的解決方案。

步驟1

轉到您的紅寶石寶石目錄。 在我的情況下,它位於C:/Ruby21/lib/ruby/gems/2.1.0/gems

尋找yajl。

image1

你會看到一個文件夾,名爲yajl-ruby-1.1.0-x86-mingw32

您可能會或可能不會看到一個叫yajl-ruby-1.2.1

的一個具有-ruby-1.1.0-x86架構的mingw32尾是默認值。並導致錯誤。

我們要使用什麼是其他版本

步驟2

如果你沒有在沒有的mingw32版本,運行

gem install yajl-ruby 

這將安裝最新版本。

在我的情況下,最新的版本是1.2.1

步驟3

變化從的mingw32版本升級到當前版本的默認。

要做到這一點,去你的網站的gemfile.lock文件

查找說yajl-ruby (1.1.0-x86-mingw32)

行並將其更改爲yajl-ruby (1.2.1)

,或者你下載

img_before img_after各個版本

步驟4

就是這樣。它現在應該工作。

0

安裝Yajl 1.2.0。似乎是1.2.1的錯誤。

gem install yajl-ruby --version=1.2.0 --platform=ruby 

問題解決。

我不確定平臺部分是否像其他人一樣重要,但這對我有效。

相關問題