2012-02-13 3 views
6

Я обновляю существующее приложение рельсов 2 для рельсов 3 и испытываю определенные проблемы с пониманием конвейера активов. Я прочитал через guide и, как я понимаю, файлы в любом из следующих каталогов будут разрешаться/активы:rails3 конвейер активов и конфликты файлов

  • приложения/активы
  • Lib/активы
  • поставщика/активы

, и вы можете получить к ним доступ с помощью помощников ... т.е.

image_tag('logo.png') 

Но я не понимаю, как обрабатываются столкновения? Например, что, если есть следующие файлы:

  • приложение/активы/изображения/Logo.png
  • Библиотека/активы/изображения/logo.png

Если я иду в MYAPP. com/assets/images/logo.png, какой файл будет возвращен? Я могу проверять наличие коллизий вручную в своем приложении, но это становится причиной боли при использовании драгоценных камней, которые полагаются на конвейер активов.

ответ

2

Основываясь на том, что я нашел, вы не можете иметь дубликаты файлов, так как рельсы просто вернут первый найденный.

Это кажется немного ошибки проектирования, как драгоценный камень может не пространство имен собственных активов

+0

у меня есть JQuery в комплекте с помощью 'JQuery-rails' камня. В отдельной части моего проекта Rails я хотел бы использовать другую версию jQuery, взятую Bower, без оставления 'jquery-rails' для остальной части проекта. Есть ли способ сделать это? –

0

Почему не пользуясь index manifest и организовать app/assets в несвязанные модули? Затем вы можете ссылаться на конкретный образ, image_tag('admin/logo.png'), и получить бесплатно свою кодовую базу UI, организованную более значимым образом. Вы даже можете продвигать сложный компонент, такой как Single Page Application, в свой собственный модуль и повторно использовать его из разных частей приложения.

Допустим, ваше приложение состоит из трех модулей: общественную сторону, админ интерфейс и, например, CRM, чтобы ваши агенты отслеживать процесс продажи в вашей компании:

app/assets/ 
├── coffeescripts 
│   ├── admin 
│   │   ├── components 
│   │   ├── index.coffee 
│   │   └── initializers 
│   ├── application 
│   │   ├── components 
│   │   ├── index.sass 
│   │   └── initializers 
│   └── crm 
│    ├── components 
│    ├── index.sass 
│    └── initializers 
├── images 
│   ├── admin 
│   ├── application 
│   └── crm 
└── stylesheets 
    ├── admin 
    │   ├── components 
    │   └── index.sass 
    ├── application 
    │   ├── components 
    │   └── index.sass 
    └── crm 
     ├── components 
     └── index.sass 

21 directories, 6 files 

Не забудьте обновить ваши application.rb так они будут прекомпилированы правильно:

config.assets.precompile = %w(admin.js application.js crm.js 
           admin.css application.css crm.css) 
Смежные вопросы