我正在使用rails4 + ruby2并尝试创建一个rails引擎。这个引擎有一个独立的资产目录,它有自己的样式表(sass),javascripts和图像。
问题是,image_path()
sass助手会生成错误的图像路径。让我们说我的引擎被称为“管理员”。 arrow.png
中有一个名为/admin/app/assets/images/admin/arrow.png
的图像文件。
如果在application.css.sass
我要使用background: url(image_path('arrow.png'))
,它会生成以下网址:/assets/arrow.png
,这将无效。正确的网址是/assets/admin/arrow.png
。
现在可能有两种可能的解决方案:
/admin/app/assets/admin/images/*
移至/admin/app/assets/images
或image_path()
方法为所有图片名称添加前缀image_path('admin/arrow.png')
。还有其他更好的方法来处理这件事吗?
答案 0 :(得分:2)
最佳解决方案是:
image_path('admin/arrow.png')
或asset_path('admin/arrow.png')
由于子文件夹也合并到public/assets
。这意味着app/assets/javascripts/subfolder/*
和app/assets/stylesheets/subfolder/*
现在都位于public/assets/subfolder/*