2014-11-02 2 views
2

моей файловой структуры, как такRails 4 актива или изображений пути от CSS

app 
    assets 
    bookshelf 
     assets 
     my_image.jpg 
    images 
     standard_image.png 

В моем файле css.scss, оба из них работает в разработке, но они не работают в производстве.

#some_div { 
    background: url("standard_image.png") 
} 


#some_div { 
    background: url("assets/my_image.jpg") 
} 

Я сделал RAILS_ENV=production rake assets:clean assets:precompile. Я удалил свой tmp/cache.

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

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


Когда я пытаюсь использовать

 background: asset-url("assets/my_image.jpg", image) 

я

Звездочки :: Рельсы :: Helper :: AssetFilteredError в/книги

Asset отфильтровываются и не будет подавать: добавьте Rails.application.config.assets.precompile += %w( assets/bookshelf_skin02_top_bg.jpg) в config/initializers/assets.rb и перезапустите вас r server

Очевидно, что я не хочу добавлять каждый файл актива в конфигурацию.

ответ

5

я создал /config/initializers/asset.rb и поместить соответствующие расширения файлов в регулярных выражений форме.

Я считаю, что это работает, потому что это говорит трубопровод активов прекомпилировать все эти типы файлов в библиотеке или поставщике, которые не сделали автоматически рельсы 4.

# Images 
Rails.application.config.assets.precompile << /\.(?:png|jpg|jpeg|gif)\z/ 

# Fonts 
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/ 
-1

истинна в вашей конфигурации/сред/production.rb

config.assets.compile = true 
+0

Я знаю, что будет работать, но это хорошая идея из-за скорости. Есть и другой способ. – ahnbizcad

0

Удалить папку активов:

background: image-url('my_image.jpg');

+0

это будет работать только для файлов в папке с изображениями, а не в пользовательских папках в 'vendor/assets' или' lib/assets' – ahnbizcad

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