为共享样式表创建gem并在Rails应用程序中使用它

Lan*_*opp 4 ruby gem ruby-on-rails sass stylesheet

我正在尝试创建一个gem来放置所有常见的样式表.我无法弄清楚如何在Rails应用程序中导入样式表.这是我到目前为止所做的事情(遵循本指南):

  1. 我跑bundle gem apple_core.

  2. 我修改了apple_core.rb以包含一个rails引擎类,如下所示:

    require "apple_core/version"
    
    module AppleCore
      class Engine < Rails::Engine
      end
    end
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我使用创建了apple_core stylesheets目录mkdir -p lib/apple_core/app/assets/stylesheets/apple_core.

  4. 我在apple_core stylesheets目录中创建了一个索引文件,并在其中添加了以下内容:

    /*
     *= require_self
     *= require_tree .
     */
    
    Run Code Online (Sandbox Code Playgroud)
  5. 我在同一目录下创建了一个test.css.scss文件,并添加了:

    a
    {
      color: red;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  6. 我为gem创建了一个GitHub存储库并推送它.

  7. 在我的Rails应用程序中,我将gem添加到资产组中的Gemfile中.

  8. 我跑bundle install.

我试图在我的一个文件中包含我的gem @import "apple_core";,但是当我试图加载页面时,我收到了一个couldn't find file 'apple_core'错误.我在这里错过了什么?

ohc*_*ibi 5

您只需镜像gem中的目录,就像它们在rails项目中一样.所以你可以把资产放到app/assets,lib/assetsvendor/assets.然后,您必须确保这些文件包含在您的gemspec中,例如:

  s.files = Dir["{app,config,db,lib,vendor}/**/*"] + ["MIT-LICENSE", "Rakefile", "Readme.md"]
Run Code Online (Sandbox Code Playgroud)

所以路径应该是vendor/assets/stylesheets/apple_core.