如何在seeds.rb中添加图片路径?Rails项目种子文件图片路径配置问题
正确配置seeds.rb中Course图片路径的两种方案
方案1:写死静态路径(仅适用于未开启资产指纹的场景)
assets/images目录下的静态资源默认访问根路径为/assets/,你存放在assets/images/courses下的图片,直接补全路径前缀即可:
Course.create!( name: "Art", description: "In this beginner's art class learners will meet to create nature inspired artwork! Perfect class for Pre-Kindergarten, Kindergarten, 1st grade & 2nd grade artists (UK: Reception, Year 1, Year 2, Year 3)- with science & a touch of geography.", tags: "#art #image #kids", ages: "4 - 13", minsize: 4, maxsize: 7, duration: 45, price: 10, image_url: "/assets/courses/art1.jpg", )
注意:该方案仅适合关闭了Rails资产管道指纹功能的项目,默认生产环境开启指纹后,写死的路径会因为文件后缀带哈希值而404。
方案2:适配资产指纹(推荐,适配所有Rails默认配置场景)
你可以直接在seeds.rb中调用Rails内置的资产路径帮助器,自动生成适配开发/生产环境的正确路径:
- 首先在seeds.rb文件顶部引入资产帮助器:
include ActionView::Helpers::AssetUrlHelper
- 调用
asset_path方法生成对应图片的路径:
Course.create!( name: "Art", description: "In this beginner's art class learners will meet to create nature inspired artwork! Perfect class for Pre-Kindergarten, Kindergarten, 1st grade & 2nd grade artists (UK: Reception, Year 1, Year 2, Year 3)- with science & a touch of geography.", tags: "#art #image #kids", ages: "4 - 13", minsize: 4, maxsize: 7, duration: 45, price: 10, image_url: asset_path("courses/art1.jpg"), )
该方案会自动处理路径前缀、生产环境资产哈希后缀,无需手动修改适配不同环境。
内容的提问来源于stack exchange,提问作者Дмитро Горецький
相关产品推荐
相关产品推荐

