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

Рельсы 4 изображения активов поставщика активов не прекомпилируются

Я использую rails 4 и ruby ​​1.9.3 для своего приложения и fancybox2-rails gem, но есть общая проблема с конвейером активов. Если я выполняю rake task для прекомпиляции, тогда все прекрасно, за исключением изображений в vendor/assets/images и ../gems/ruby-1.9.3-p327/gems/fancybox2-rails-0.2.1/vendor/assets/images. Изображения из этих двух папок не прекомпилируются, и в конечном итоге у меня есть проблема с мертвыми ссылками на несуществующие изображения. Любые предложения?

4b9b3361

Ответ 1

Похоже, что изображения включены по умолчанию только из папки app/assets. Таким образом, решение состоит в том, чтобы добавить эту строку в config/application.rb

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif)

Ответ 2

Похоже, Sporker не может автоматически загружать изображения из поставщика/активов/изображений.

2.2 Организация активов Активы трубопровода могут быть размещены внутри приложения в одном из трех местоположений: app/assets, lib/assets или vendor/assets.

app/assets - это активы, принадлежащие приложению, такие как пользовательские изображения, файлы JavaScript или таблицы стилей.

lib/assets - для вашего собственного кода библиотек, который не очень подходит для области приложения или тех библиотек, которые доступны для разных приложений.

поставщик/активы - это активы, принадлежащие внешним организациям, такие как код для плагинов JavaScript и рамки CSS

Из описания приходят guides.rubyonrails.org, я не думаю, что они игнорировали поставщиков/активы/изображения без каких-либо намерений.

Итак, я просто добавил следующую строку:

#config/application.rb
config.assets.paths << Rails.root.join("vendor", "assets", "images")

И я решил свою проблему. Надеюсь, это сработает для вас.

Ответ 3

Для моего проекта Rails 4.2.x я просто переместил изображения поставщика на vendor/assets/images и добавил его в application.rb:

config.assets.precompile += %w(vendor/assets/images/*)

Прекрасно работает на разработку и производство.