【问题标题】:image_path() generates wrong image path for engine assetsimage_path() 为引擎资源生成错误的图像路径
【发布时间】:2013-11-20 21:45:42
【问题描述】:

我正在使用 rails4 + ruby​​2 并尝试创建一个 rails 引擎。这个引擎有一个单独的 assets 目录,里面有它自己的样式表(sass)、javascripts 和图像。

问题是,image_path() sass 助手生成了错误的图像路径。假设我的引擎被称为“管理员”。 /admin/app/assets/images/admin/arrow.png中有一个名为arrow.png的图片文件。

如果我在application.css.sass 中使用background: url(image_path('arrow.png')),它将生成以下网址:/assets/arrow.png,这将不起作用。正确的网址是/assets/admin/arrow.png

目前可能有两种可能的解决方案:

  1. 将所有/admin/app/assets/admin/images/* 移至/admin/app/assets/images,或
  2. image_path() 方法中的所有图像名称前加上引擎名称,这给了我 image_path('admin/arrow.png')

还有其他更好的方法来处理这件事吗?

【问题讨论】:

    标签: ruby-on-rails sass asset-pipeline


    【解决方案1】:

    最好的解决办法是:

    image_path('admin/arrow.png')asset_path('admin/arrow.png')

    由于子文件夹也合并到public/assets。这意味着app/assets/javascripts/subfolder/*app/assets/stylesheets/subfolder/* 现在都住在public/assets/subfolder/*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 2011-09-05
      • 2010-10-01
      相关资源
      最近更新 更多