เนื้อหา 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)

ฉันเข้าใจ

Sprockets::Rails::Helper::AssetFilteredเกิดข้อผิดพลาดที่ /books

เนื้อหาถูกกรองออกและจะไม่แสดงผล: เพิ่ม Rails.application.config.assets.precompile += %w( assets/bookshelf_skin02_top_bg.jpg ) ใน config/initializers/assets.rb และรีสตาร์ทเซิร์ฟเวอร์ของคุณ

แน่นอนว่าฉันไม่ต้องการเพิ่มไฟล์เนื้อหาแต่ละไฟล์ในการกำหนดค่า


person ahnbizcad    schedule 02.11.2014    source แหล่งที่มา


คำตอบ (3)


ฉันสร้าง /config/initializers/asset.rb และใส่นามสกุลไฟล์ที่เกี่ยวข้องในรูปแบบ regex

ฉันเชื่อว่าสิ่งนี้ได้ผลเพราะสิ่งนี้จะบอกไปป์ไลน์สินทรัพย์ให้คอมไพล์ไฟล์ประเภทเหล่านี้ทั้งหมดล่วงหน้าใน lib หรือผู้จำหน่าย ซึ่งไม่ได้ทำโดยอัตโนมัติใน 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

ลบโฟลเดอร์สินทรัพย์ :

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

person Magicpulse    schedule 03.11.2014
comment
สิ่งนี้จะใช้ได้กับไฟล์ในโฟลเดอร์รูปภาพเท่านั้น ไม่ใช่ในโฟลเดอร์ที่กำหนดเองภายใน vendor/assets หรือ lib/assets - person ahnbizcad; 07.11.2014

ตั้งค่าเป็น true ใน config/environments/production.rb

config.assets.compile = true
person user3366155    schedule 02.11.2014
comment
ฉันรู้ว่ามันได้ผล แต่ก็เป็นความคิดที่ดีเพราะความเร็ว มีอีกวิธีหนึ่ง - person ahnbizcad; 04.11.2014