【问题标题】:Nanoc rules file not handling my JavaScript directoryNanoc 规则文件未处理我的 JavaScript 目录
【发布时间】:2014-09-28 22:07:51
【问题描述】:

我的 nanoc 内容目录结构:

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?。我似乎设置正确,但我的结果却相反。

我看不到错误。有人有想法么?

【问题讨论】:

    标签: javascript nanoc


    【解决方案1】:

    由于它将输入文件名映射到输出路径的方式,Nanoc 要求content 下每个文件的基本名称(即,无文件扩展名)是唯一的。从 Nanoc 的角度来看,您为其提供了两个共享基本名称 bootstrap 的文件,因此不能具有唯一的输出路径,因此会出现此错误。

    由于您真正想要的是让 Nanoc 逐字复制您网站的这一部分(第三方 JavaScript 文件),因此最好将这些文件完全移出 content 树并设置一个加载它们的静态数据源。然后 Nanoc 将简单地按原样复制文件,而不尝试处理或重命名它们。 Nanoc 网站上的"Troubleshooting" 页面提供了有关如何执行此操作的说明;请参阅"Error: “Found 3 content files for X; expected 0 or 1” 下的“解决方案 #2”。

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2016-04-24
      相关资源
      最近更新 更多