【问题标题】:compass-rails within a rails enginerails 引擎中的 compass-rails
【发布时间】:2013-12-19 20:26:37
【问题描述】:

我正在尝试让 Rails 引擎使用指南针的精灵生成功能。 我将compass-rails 添加到主应用程序的Gemfile(在assets 组之外)。

在引擎的 CSS 文件中我这样做:

@import "my-engine/icons/*.png";
@include all-icons-sprites;

唉,该应用在错误的目录中查找图像

ActionView::Template::Error (No files were found in the load path matching "my-engine/icons/*.png". Your current load paths are: /home/dan/work/main-project/app/assets/images
  (in /home/dan/work/my-engine/app/assets/stylesheets/my-engine/sources.css.scss)):

我应该如何以及在哪里配置指南针以寻找正确的路径?

【问题讨论】:

    标签: ruby-on-rails-3 sass compass-sass


    【解决方案1】:

    需要检查的两件事:

    1. 指南针插件在 app/assets/images 文件夹中查找内容。

    2. 文件只需具有 PNG 扩展名。

    cmets 更新

    如果您想将图像保存在应用程序的其他位置,例如“public/sprites”,您可以在 config/application.rb 中指定以下配置设置:

    config.compass.generated_images_dir = 'public/sprites'
    

    此外,由于新的 sprite 文件保存在 'public/sprites/icons-xxx.png' 中,因此您需要将输出路径添加到 config/application.rb 中的资产路径:

    config.assets.paths << Rails.root.join('public', 'sprites')
    

    【讨论】:

    • 1.是的,我希望它会查看引擎的资产/图像,而不是主应用程序。 2.检查!
    • 更新了您的精灵的替代位置的答案。如果这被证明有帮助,请点赞或打勾:)
    • 感谢更新,但我的意思是我的源图像在引擎中,而不是主应用程序中。此外,AFAIK 主应用程序不应该知道引擎的特性。
    猜你喜欢
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多