Предварительно скомпилированные активы Rails / Heroku не найдены - PullRequest
1 голос
/ 20 января 2012

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

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 %>

Ответы [ 3 ]

5 голосов
/ 20 января 2012

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

Убедитесь, что вы используете стек Cedar, а не Bamboo, и посмотрите на этот и следуйте ниже в разделе устранения неполадок: enter image description here

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

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

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

2 голосов
/ 20 января 2012

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

0 голосов
/ 23 сентября 2013

Как описано здесь (https://devcenter.heroku.com/articles/ruby-support#static-assets) вы следует добавить гем 'rails_serve_static_assets' в ваш Gemfile, и проблема будет исправлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...