2012-01-20 3 views
1

Я довольно новичок в Rails и Heroku, и я пытаюсь развернуть приложение, которое использует библиотеку пользовательского интерфейса jQuery. У меня есть jQuery UI Javascript и CSS-файлы в моей папке app/assets, и у меня она настроена на прекомпиляцию активов (я должен был сделать это, чтобы мое приложение действительно работало на Heroku). Однако файлы jQuery UI не обнаруживаются при загрузке страницы (пользовательский интерфейс jQuery не работает). Из того, что я собрал, он переименовывает файлы в <filename>-<md5 hash>.js/css. Как я могу сделать ссылку на правильный файл?Rails/Heroku предварительно скомпилированные активы не найдены

app/views/layouts/application.html.erb:

<%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "application" %> 
    <%= javascript_include_tag "http://code.jquery.com/jquery-1.7.1.min.js" %> 
    <%= javascript_include_tag "jquery-ui-1.8.16.custom.min" %> 
    <%= stylesheet_link_tag "jquery-ui-1.8.16.custom" %> 
    <%= stylesheet_link_tag "http://fonts.googleapis.com/css?family=Open+Sans:300italic,400,300" %> 
    <%= csrf_meta_tags %> 
+0

Не могли бы вы показать код, в который включен файл jQuery UI? – xanderer

+0

Отредактировано сообщение, чтобы включить его – airplaneman19

ответ

2

Если вы на стек бамбуковой по умолчанию, вам нужно будет перекомпилировать активы, rake assets:precompile себя и совершать результаты в государственных/активов и подтолкнуть их к Heroku. В противном случае использование стека Cedar может быть проще.

5

Я бы рекомендовал удалить функцию прекомпилированных активов и позволить Heroku сделать это за вас. Я сначала начал, как и вы, однако быстро обнаружил, что это превосходный подход и рекомендован поддержкой Heroku для компиляции активов во время компиляции пули.

Убедитесь, что вы используете стек Cedar, а не из бамбука и take a look at this, а затем следуют ниже в разделе Устранение: enter image description here

сторона примечание особенно важно: «Если public/assets/manifest.yml обнаружен в вашем приложении , Heroku предположит, что вы сами обрабатываете компиляцию активов и не будете пытаться скомпилировать свои активы ».

Убедитесь, что вы удалили все, что находится в папке public/assets/*, созданной прекомпиляцией, включая файл manifest.yml.

В противном случае все ваши файлы JavaScript в app/assets/javascripts должны быть автоматически включены, и вы должны быть в состоянии видеть это, проверяя в своем режиме dev (в режиме производства по героку по умолчанию все они будут преобразованы в один файл application.js , но если они появятся в режиме dev, вы должны быть золотом).

+1

, вы можете очистить свою папку public/assets с помощью: 'bundle exec rake assets: clean'. Затем зафиксируйте и нажмите, и вы должны быть правы. – ftravers

+0

При развертывании проверьте вывод для 'Detected manifest.yml, предполагая, что активы были скомпилированы локально. Для меня я случайно присвоил свои активы один раз и, хотя я удалил файлы локально, я забыл« git rm public/assets/* 'поэтому на сервере heroku был файл manifest.yml. – adamwong246

+1

У меня нет файла manifest.yml, нет папки public/assets. Когда я делаю git push to heroku, он не компилирует файлы application.css или .js. У меня это в моем приложении.rb написано: 'config.assets.initialize_on_precompile = false'' config.assets.precompile << 'application.css'' и т. Д. Все еще ничего. Есть идеи? – Trip

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