2014-09-28 147 views
0

我nanoc內容的目錄結構:Nanoc規則文件不處理我的JavaScript目錄

assets -> (css, images, files) 
js 
partials 
[*.textile source files] 

從我的規則提取文件:

compile '/js/*/' do 
    # don’t filter or layout 
end 
. 
. 
. 
route '/js/*/' do 
    item.identifier.chop + '.' + @item[:extension].to_s 
end 

命令行結果:

Message: 

RuntimeError: Found 2 content files for content/js/bootstrap; expected 0 or 1 

Compilation stack: 

    (empty) 

Stack trace: 

    0. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/data_sources/filesystem.rb:168:in `block in all_split_files_in' 
    1. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/data_sources/filesystem.rb:158:in `each_pair' 
    2. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/data_sources/filesystem.rb:158:in `all_split_files_in' 
    3. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/data_sources/filesystem.rb:86:in `load_objects' 
    4. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/data_sources/filesystem.rb:45:in `items' 
    5. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/base/source_data/site.rb:334:in `block in load_items' 
    6. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/base/source_data/site.rb:333:in `each' 
    7. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/base/source_data/site.rb:333:in `load_items' 
    8. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/base/source_data/site.rb:244:in `load' 
    9. /home/tomc/.rvm/gems/ruby-2.1.1/gems/nanoc-3.7.1/lib/nanoc/base/source_data/site.rb:128:in `layouts' 
    ... 27 more lines omitted. See full crash log for details. 

我諮詢How add own javascript file to nanoc?。我似乎正在設置正確的東西,但我的結果卻不然。

我看不到錯誤。有人有主意嗎?

回答

1

由於它將輸入文件名映射到輸出路徑的方式,Nanoc要求每個文件在content下的基本名稱(即文件名較少的擴展名)是唯一的。從Nanoc的角度來說,你給它兩個文件共享基地名稱bootstrap,因此不能有唯一的輸出路徑,所以它給你這個錯誤。

因爲你真正想要的是讓Nanoc逐字複製你網站的這一部分(第三方JavaScript文件),所以最好將這些文件完全移出content樹,並設置一個靜態數據源從中加載它們。然後Nanoc將直接複製這些文件,而不會嘗試處理或重命名它們。 Nanoc網站上的"Troubleshooting"頁面有關於如何操作的說明;請參閱"Error: 「Found 3 content files for X; expected 0 or 1」下的「解決方案2」。