0

編集:私は今愚かな気分です。問題は私のglobal.scssにあったことが判明しました:

.settings{
    @include site-icons-sprites(settings);
}

site-icons-sprite の代わりに site-icon-sprite を入れたところ、期待どおりに動作しました。


Rails アプリケーションで Compass でスプライトを使用しようとしていますが、次のエラーが表示され続けます。

NoMethodError on line ["100"] of /usr/local/rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.2/lib/compass/sass_extensions/functions/sprites.rb: undefined method `parent' for nil:NilClass

app>assets>images>site-icons という名前のフォルダーに、settings.png と search.png という 2 つの 18x18px 画像があります。私のコードは次のとおりです。

modules/_sprites.scss から:

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

global.scss から:

.settings{
    @include site-icons-sprites(settings);
}

私のヘッダーファイルから:

<li class="has-dropdown">
    <%= current_user.display_name %> 
    <span class="settings"> </span>

    <ul class="dropdown">
        <li><%= link_to "Profile", current_user %></li>
        <li><%= link_to "Dashboard", :root %></li>
        <li><%= link_to "Logout", signout_path %></li>
        <li>
    </ul>
</li>

コンパイルした application.css ファイルから:

/* line 50, site-icons/*.png */
.site-icons-sprite, .site-icons-gear, .site-icons-search, .settings .site-icons-gear, .settings .site-icons-search {
  background: url(/assets/site-icons-sd9044365e4.png) no-repeat;
}

/* line 60, ../../../../../../usr/local/rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */
.site-icons-gear {
  background-position: 0 -20px;
}

/* line 60, ../../../../../../usr/local/rvm/gems/ruby-1.9.3-p392/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */
.site-icons-search {
  background-position: 0 0;
}

誰もこれを経験したことがありますか?それを引き起こしている可能性のあるアイデアはありますか?

4

2 に答える 2

0

私は今、愚かな気分です。問題は私のglobal.scssにあったことが判明しました:

.settings{
    @include site-icons-sprites(settings);
}

site-icons-sprite の代わりに site-icon-sprite を入れたところ、期待どおりに動作しました。

于 2013-07-22T18:57:55.170 に答える
0

これは、画像名の 1 つが数字で始まる場合にも発生します

于 2016-11-04T11:34:09.813 に答える