Подтвердить что ты не робот

Глификон работает локально, но не на Героку

Если вы посмотрите на мое приложение здесь: http://quiet-brushlands-5712.herokuapp.com/, рядом с кнопкой находится значок, глификон. Но это не появляется на героку. локально он выглядит так же хорошо:

enter image description here

Я попробовал "решение" здесь Использование файла boostrap.css в Rails production/heroku без LESS или SASS и других ссылок в Google. Мне нужен глиф, чтобы показать на Heroku. Любая помощь?

Я не загружал загрузчик Twitter вручную, я просто использую драгоценный камень. В моей консоли Javascript у меня есть следующее:

GET http://quiet-brushlands-5712.herokuapp.com/assets/glyphicons-halflings.png 404 (Not Found)

My Gemfile, если это помогает:

source 'https://rubygems.org'

gem 'rails', '4.0.2'
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '2.0.0'
gem 'jbuilder', '~> 1.2'
gem 'bootstrap-sass', '2.1'
gem 'jquery-ui-rails', '4.1.0'
gem 'pg'
gem 'font-awesome-rails', '4.0.3.0'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

group :development, :test do
  gem 'rspec-rails', '2.11.0'
  gem 'guard-rspec', '1.2.1'
  gem 'guard-spork', '1.2.0'
  gem 'childprocess', '0.3.6'
  gem 'spork', '0.9.2'
end

group :production do
  gem 'rails_12factor'
end
4b9b3361

Ответ 1

Решение заключалось в изменении config.assets.compile = false на config.assets.compile = true в файле config/environments/production.rb.

Ответ 2

Решение, которое не использует резерв компиляции (проверено на Rails 4.1): В ваших файлах scss импортируйте bootstrap-sprockets непосредственно перед загрузкой.

@import "bootstrap-sprockets";
@import "bootstrap";

Ответ 3

В дополнение к комментарию Vidya, вероятно, это будет ваш конвейер активов, что проблема

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


Фингерпринт с активами

Heroku требует, чтобы вы прекомпилировали свои активы из-за отпечатки активов

Здесь ваши активы будут иметь хэш, применяемый к концу их имени файла, например image-12sdafdsafkj223423jnjfadsnfsad.png или тому подобное. Причина этого, по-видимому, заключается в том, чтобы сохранить активы уникальными или что-то типа

Если вы следуете ссылке, предоставленной Vidya, вы обнаружите, что Heroku предлагает вам предварительно скомпилировать ваши активы с помощью Rails CMD. Что это не говорит вам, что это испортит ваши изображения, если они не были динамически назначены


SCSS

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

Как и в Rails, SCSS позволяет использовать asset_path или image_path для создания динамической ссылки. Это то, что вам нужно сделать, чтобы исправить вашу проблему. Вот какой код мы используем, который работает на Heroku:

.navigation_bar {
        z-index: 200;
        position: relative;
        background: asset_url('nav_bar/bg.png') repeat-x top;
}

Ответ 4

Если вы не хотите, чтобы ваш config.assets.compile был равен true в рабочей среде (что вам, вероятно, не нужно для повышения производительности), вы можете предварительно предварительно скомпилировать свои активы, прежде чем нажимать на герою, используя rake assets:precompile RAILS_ENV=production

Ответ 5

В config/environments/production.rb

Изменить config.assets.compile = false в config.assets.compile = true

(а затем не забудьте зафиксировать и нажать на герою)

Работал для меня...

Ответ 6

Поскольку я пришел к этому ответу, когда я искал, я полагаю, что я должен сказать, что решение, с которым я столкнулся, состояло в том, чтобы включить импорт в "bootstrap-sprockets" перед загрузкой. Это описано в https://github.com/twbs/bootstrap-sass/issues/653.

Я понимаю, что вопрос не в использовании bootstrap-sass 3.2+, но я полагаю, что это может кому-то помочь.