Компиляция и маршрутизация файлов в папке bower_component в Nanoc
Я хочу взять и положить некоторые файлы под bower_components
папка. На моем веб-сайте bower_components
Дерево папок выглядит следующим образом:
├── 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_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.
В чем проблема?
Есть ли у вас какие-либо идеи?
1 ответ
Из-за способа сопоставления входных имен файлов с выходными путями, Nanoc требует базовое имя (т. Е. Имя файла без расширения) каждого файла в content
быть уникальным. С точки зрения Nanoc вы даете ему четыре файла, которые имеют базовое имя angular
и, следовательно, не может иметь уникальных выходных путей, поэтому он дает вам эту ошибку.
Поскольку вы действительно хотите, чтобы Nanoc скопировал эту часть вашего сайта дословно, вам следует настроить статический источник данных, из которого его можно загрузить. Тогда Nanoc просто скопирует файлы как есть, не пытаясь обработать или переименовать их. Страница "Устранение неполадок" на веб-сайте Nanoc содержит инструкции о том, как это сделать; см. "Решение № 2" в разделе "Ошибка:" Найдено 3 файла содержимого для X; ожидается 0 или 1 ".