Ruby 在Nanoc的bower_组件文件夹下编译和路由文件

Ruby 在Nanoc的bower_组件文件夹下编译和路由文件,ruby,nanoc,Ruby,Nanoc,我想把一些文件放到bower\u components文件夹下。在我的网站中,bower\u组件文件夹树如下: ├── bower_components │   └── angular │   ├── README.md │   ├── angular-csp.css │   ├── angular.js │   ├── angular.min.js │   ├── angular.min.js.gzip │   ├── angular.min.j

我想把一些文件放到
bower\u components
文件夹下。在我的网站中,
bower\u组件
文件夹树如下:

├── bower_components
│   └── angular
│       ├── README.md
│       ├── angular-csp.css
│       ├── angular.js
│       ├── angular.min.js
│       ├── angular.min.js.gzip
│       ├── angular.min.js.map
│       └── bower.json
我只想将
angular.min.js
文件复制到
output/bower\u components/angular/angular.min.js
文件夹中

为此,我修改了规则文件,如下所示:

compile "/bower_components/*.min.js" do
  #item.identifier.chop + '.' + item[:extension]
end

route "/bower_components/*.min.js" do
  item.identifier.chop + '.' + item[:extension]
end
当我编译我的网站时,我有以下错误:

RuntimeError: Found 4 content files for content/bower_components/angular/angular; expected 0 or 1

Compilation stack:

  (empty)

Stack trace:

  0. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/data_sources/filesystem.rb:164:in `block in all_split_files_in'
  1. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/data_sources/filesystem.rb:154:in `each_pair'
  2. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/data_sources/filesystem.rb:154:in `all_split_files_in'
  3. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/data_sources/filesystem.rb:78:in `load_objects'
  4. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/data_sources/filesystem.rb:37:in `items'
  5. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/base/source_data/site.rb:325:in `block in load_items'
  6. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/base/source_data/site.rb:324:in `each'
  7. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/base/source_data/site.rb:324:in `load_items'
  8. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/base/source_data/site.rb:243:in `load'
  9. /Users/neva/.rvm/gems/ruby-1.9.3-p448@global/gems/nanoc-3.6.7/lib/nanoc/base/source_data/site.rb:127:in `layouts'
  ... 27 more lines omitted. See full crash log for details.
有什么问题吗


你知道吗?

由于Nanoc将输入文件名映射到输出路径的方式,它要求
内容下每个文件的基本名称(即无文件名扩展名)是唯一的。从Nanoc的角度来看,您给它四个文件,它们共享基本名称
angular
,因此不能有唯一的输出路径,因此它给您这个错误


因为您真正想要的是将Nanoc拷贝逐字复制到站点的这一部分,所以您应该设置一个静态数据源,从中加载它。然后,Nanoc将简单地按原样复制文件,而不尝试处理或重命名它们。Nanoc网站上的页面上有如何操作的说明;请参阅。

下的“解决方案#2”,我通常将整个bower目录设置为静态数据源,因为这几乎是我遇到“X的N个内容文件”错误的唯一地方。