Jalur aset atau gambar Rails 4 dari CSS

struktur file saya seperti itu

app
  assets
    bookshelf
      assets
        my_image.jpg
    images
      standard_image.png

Di file css.scss saya, keduanya berfungsi dalam pengembangan, tetapi tidak berfungsi dalam produksi.

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


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

Saya sudah melakukan RAILS_ENV=production rake assets:clean assets:precompile. Saya telah menghapus tmp/cache saya.

Saya merasa ini mungkin masalah konfigurasi. Apa yang saya lewatkan?

Saya tahu gambarnya ada di server. Saya mendapatkan nama file yang dicerna dan memasukkannya ke dalam url dengan alamat root produksi.


Ketika saya mencoba menggunakan

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

saya mendapat

Sprocket::Rails::Helper::AssetFilteredError di /books

Aset difilter dan tidak akan ditayangkan: tambahkan Rails.application.config.assets.precompile += %w( assets/bookshelf_skin02_top_bg.jpg ) ke config/initializers/assets.rb dan mulai ulang server Anda

Jelas, saya tidak ingin menambahkan setiap file aset di konfigurasi.


person ahnbizcad    schedule 02.11.2014    source sumber


Jawaban (3)


Saya membuat /config/initializers/asset.rb dan memasukkan ekstensi file yang relevan dalam bentuk regex.

Saya yakin ini berhasil karena ini memberitahu saluran aset untuk melakukan prakompilasi semua jenis file ini di lib atau vendor, yang tidak dilakukan secara otomatis di Rails 4.

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

# Fonts
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf)\z/
person ahnbizcad    schedule 04.11.2014

Hapus folder aset:

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

person Magicpulse    schedule 03.11.2014
comment
ini akan berfungsi untuk file di folder gambar saja, bukan di folder khusus dalam vendor/assets atau lib/assets - person ahnbizcad; 07.11.2014

Tetapkan true di config/environments/production.rb Anda

config.assets.compile = true
person user3366155    schedule 02.11.2014
comment
Saya tahu itu akan berhasil, tapi itu ide yang bagus karena kecepatannya. Ada cara lain. - person ahnbizcad; 04.11.2014