2013-02-19 3 views
2

Для приложения, построенного на вершине Rails (3.1.8) с ExtJS 4.1, мы имеем следующие файлы макета:Использование ExtJS вместе с Pipeline Рельсы активов

app/ 
    assets/ 
    javascript/ 
    application.coffee 
    WID/ 
     Lots of coffeescript files and folders. 
public/ 
    extjs/ 
    ext-all-debug-w-comments.js and the whole ExtJS framework. 

Наше приложение сильно зависит от загрузчика Ext (Ext.Require) для динамической загрузки файлов на основе прав пользователей/разрешенных модулей. Мы хотели бы как можно больше сохранить эту функциональность, поэтому с сервера запрашиваются только требуемые файлы. Полоса пропускания на самом деле не является проблемой, так как приложение основано на интрасети (в локальной сети).

В среде разработки все работает ровно. Однако в производственной среде у нас возникают проблемы. Похоже, что задача «rake assets: precompile» объединяет все файлы в файл application.js, а затем при обращении к нашему приложению Ext loader жалуется, что он не может найти отдельные файлы (поскольку активы/WID/... /file.js не обслуживается сервером rails).

Так что прямо сейчас, я не уверен, что было бы лучшим шагом ... Кто-нибудь может помочь нам с успешной настройкой Rails + ExtJS, взяв лучшее из конвейера активов?

Спасибо,

Pierre.

+0

Является ли это диаграммой развития? –

+0

Да, макет файлов из файловой системы разработки. – Doodloo

ответ

0

Я думаю, что вы должны переместить свои javascripts (и вообще все активы) из вашего public в vendor/assets/javascripts, когда вы находитесь в среде разработки. Таким образом, управление активами становится ответственным.

РЕДАКТИРОВАТЬ: Вы можете рассмотреть вопрос о возврате файла манифеста в application.js, а не application.coffee. Как правило, это плохая идея переименовать эти специальные файлы: application.css и application.js. Если у вас есть некоторый файл coffescript для добавления, просто создайте новый файл и поместите его в каталог активов.

+0

Будет ли coffeescript правильно компилироваться, если он помещен в вендор /? – Doodloo

+0

Абсолютно, 'vendor/assets /' является одним из стандартных [каталогов ресурсов] (http://guides.rubyonrails.org/asset_pipeline.html). Остальные два: 'app/assets' и' lib/assets'. –

+0

Я переместил файлы из папки/app/assets/javascript в/vendor/assets/javascripts. Однако при доступе к приложению файлы по-прежнему нельзя обслуживать. Например, при попытке доступа к файлу, находящемуся в «/vendor/assets/javascripts/WID/grinder/Core.coffee», ответ сервера: «ActionController :: RoutingError (Нет маршрутов соответствует [GET]»/assets/Wid /grinder/Core.js ". – Doodloo

Смежные вопросы