Tengo estos archivos en mi carpeta lib/assets (sketchyPad es un plugin jQuery para dibujar en canvas html5 y farbastic es un selector de color utilizado por sketchyPad) :cómo especificar la ruta al archivo js en lib/assets usando carriles 3.2 canalización de activos
lib/
|-- assets
| |-- javascripts
| | `-- lib.js
| `-- sketchyPad
| |-- README.md
| |-- brushes
| | |-- simple.js
| | `-- smooth.js
| |-- example
| | |-- index.html
| | |-- jquery-ui-1.8.16.custom
| | | |-- css
| | | | `-- ui-lightness
| | | | |-- images
| | | | | |-- ui-bg_diagonals-thick_18_b81900_40x40.png
| | | | | |-- ui-bg_diagonals-thick_20_666666_40x40.png
| | | | | |-- ui-bg_flat_10_000000_40x100.png
| | | | | |-- ui-bg_glass_100_f6f6f6_1x400.png
| | | | | |-- ui-bg_glass_100_fdf5ce_1x400.png
| | | | | |-- ui-bg_glass_65_ffffff_1x400.png
| | | | | |-- ui-bg_gloss-wave_35_f6a828_500x100.png
| | | | | |-- ui-bg_highlight-soft_100_eeeeee_1x100.png
| | | | | |-- ui-bg_highlight-soft_75_ffe45c_1x100.png
| | | | | |-- ui-icons_222222_256x240.png
| | | | | |-- ui-icons_228ef1_256x240.png
| | | | | |-- ui-icons_ef8c08_256x240.png
| | | | | |-- ui-icons_ffd27a_256x240.png
| | | | | `-- ui-icons_ffffff_256x240.png
| | | | `-- jquery-ui-1.8.16.custom.css
| | | `-- js
| | | `-- jquery-ui-1.8.16.custom.min.js
| | |-- jquery.min.js
| | `-- mattfarina-farbtastic-4bb6bbf
| | |-- CHANGELOG.html
| | |-- LICENSE.txt
| | |-- README.html
| | |-- README.md
| | |-- demo1.html
| | |-- demo2.html
| | |-- farbtastic.css
| | |-- farbtastic.js
| | |-- farbtastic.min.js
| | |-- marker.png
| | |-- mask.png
| | `-- wheel.png
| |-- sketchyPad.css
| `-- sketchyPad.js
Así que desea incluir sketchyPad.js, sketchyPad.css y también todos los js en los cepillos de carpeta y archivo también la farbtastic.min js.
en app/activos/javascript/application.js pongo:
//= require sketchyPad (this part works fine and correctly includes sketchyPad.js)
pero también quiero incluir
lib/assets/sketchyPad/brushes/simple.js
lib/assets/sketchyPad/brushes/smooth.js
y archivos de cualquier otro js en la carpeta de pinceles, ¿cómo puedo ¿Usar require_directory cuando no está en la aplicación/activos sino en lib/assets o vendor/assets?
Actualización:
He tratado
require_tree sketchyPad
pero los errores con:
require_tree argument must be a relative path
He tratado
require_tree ./sketchyPad
pero los errores con:
require_tree argument must be a directory
creo require_tree debe ser relativa a la carpeta app/activos, pero poner algo así como
require_tree ./../lib/assets/sketchyPad/brushes
también da error:
argumento require_tree debe ser un directorio
Eitherway I no quiero incluir todo el árbol de sketchyPad, porque contiene algunos archivos js que no quiero incluir ... como ejemplos y su propia versión de jQuery antiguo.
ACTUALIZACIÓN:
Lo que terminé haciendo fue la creación de un lib.js en los lib/activos/javascript carpeta con un manifiesto para incluir archivos de la sketchyPad js como en relación con el lib/activos carpeta en lugar de la aplicación/carpeta de activos.
en app/activos/javascript/application.js pongo:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require lib
y en lib/activos/javascript/lib.js puse:
//= require ./../sketchyPad/sketchyPad
//= require_tree ./../sketchyPad/brushes
//= require ./../sketchyPad/example/mattfarina-farbtastic-4bb6bbf/farbtastic.min
Eso parece incluir la archivos correctos. ¿Hubo una manera más fácil de hacer esto?
Pregunta: ¿Dónde está el archivo en el que desea colocar la directiva de importación? –