2012-04-10 3 views
1

Мои приложения rails 3.1 работают нормально локально, но когда я запускаю его на Heroku, журналы показывают, что Rails не находит javascripts внутри каталога vendors/assets/javascripts, хотя просмотр их вручную работает.rails 3.1.3 приложение на Heroku не находит (или прекомпилирует) поставщика/активы

Я использую драгоценный камень plupload-rails3, а javascripts gem не загружаются на Heroku, но на самом деле загружаются на моей локальной машине dev.

В моих активов/JavaScripts/application.js у меня есть:

//= require_tree ../../../vendor/assets/javascripts/plupload-rails3 
//= require_tree ../../../vendor/assets/stylesheets/plupload-rails3 
//= require_tree ../../../vendor/assets/images/plupload-rails3 

Когда я запускаю мое приложение на Heroku журналы показать Rails пытается загрузить и неудачу с каждым из plupload JavaScripts, с символическим идентификатором :

ActionController :: RoutingError (нет маршрута матчей [не GET] "/assets/plupload-rails3/plupload/js/plupload.full-f4741a878138cea127e6b38b6a08cf12.js"):

Так plupload виджет не отображается на страницу на Heroku (но когда я запускаю loc союзник).

Однако, если я вручную просмотреть это место (без ID маркера):

http://MYAPPNAME.herokuapp.com/assets/plupload-rails3/plupload/js/plupload.full.js Я вижу файл.

Я также попытался предварительно скомпоновать активы локально, а затем нажав на Heroku, с таким же результатом.

Так что что-то в моем приложении разбито с помощью Rails на Heroku, обращаясь к конвейеру поставщика/активов.

(у меня есть config.assets.compile = true в моем файле production.rb. Исходная настройка false привела к тому, что приложение потерпело крах, когда ему не удалось найти прекомпилированные активы, по крайней мере теперь он не сбой, но он игнорирует виджет javascript .)

ответ

0

Application.js - файл манифеста для javascript, вы не хотите включать в него изображения или css. поставщика/активы/JavaScripts должны быть уже в пути она ищет так просто включают:

//= require_tree ./plupload-rails3 

Edit: вы можете сделать то же включить CSS в application.css, изображения не должны быть включены в манифест.

Ознакомьтесь с руководством по Rails: http://guides.rubyonrails.org/asset_pipeline.html и Ryan Bates Railscast http://railscasts.com/episodes/279-understanding-the-asset-pipeline для получения дополнительной информации.

Edit2: только что посмотрел через камень, вы запустите

bundle exec rake plupload_rails3:install_assets 

Чтобы установить активы? Если нет, запустите это, а затем попробуйте код выше.

+0

при попытке получить ошибку 'ActionView :: Template :: Error (require_tree аргумент должен быть каталогом (в /Users/MYNAME/myapps/APPNAME/app/assets/javascripts/application.js:13)) ' – jpwynn

+0

Я предполагал, что это было с поста. Попробуйте // = require plupload-rails3 –

+0

да, я выполнил задачу грабли. и для require_tree он должен быть относительным путем (относительно где application.js), поэтому ../../../, по-видимому, необходимо. Таким образом, проблема сохраняется ... активы в поставщике/активах в моем приложении недоступны для Rails при работе на Heroku – jpwynn

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