【问题标题】:Ruby Gem: Get files in asset pipelineRuby Gem:获取资产管道中的文件
【发布时间】:2013-02-09 11:51:55
【问题描述】:

我开发了一个插件 (jQuery),我真的很想把它做成一个 gem。为了让 gem 工作,我需要三个文件在 Rails 的资产管道中:一个图像、一个 javascript 文件和一个 css 文件。

在这一刻我已经让宝石工作了,但是!我无法获取资产管道中的文件。如果我像这样包含它们:

//= require gem.js

或者

//= require gem.css

它可以工作,但是文件没有显示在资产管道中,虽然我可以使用 css 和 js 文件来完成这项工作,但我无法为图像完成这项工作。

因此,我真的希望文件显示在资产管道中(或者至少是图像,这需要让插件额外一目了然)。在这一刻,我已经做了所有我能想到的事情,但它不起作用..

这是我的宝石规格:

# -*- encoding: utf-8 -*-
$:.push File.expand_path("../lib", __FILE__)
require "yellow-text-rails/version"

Gem::Specification.new do |gem|
    # Gem information
    gem.name          = "yellow-text-rails"
    gem.version       = YellowText::Rails::VERSION
    gem.authors       = ["Stefan Vermaas"]

    # Project name
    gem.rubyforge_project = "yellow-text-rails" 

    gem.files         = `git ls-files`.split("\n")
    gem.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
    gem.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
    gem.require_paths = ["lib"]
end

我已将其包含在 `lib/yellow-text-rails/yellow-text-rails.rb' 中:

require "yellow-text-rails/version"

module YellowText
    module Rails
        if defined?(::Rails) and ::Rails.version >= "3.1"
                class Rails::Engine < ::Rails::Engine
            end
        end
    end
end

希望大家能帮帮我!谢谢!

【问题讨论】:

  • 在我的 .scss 文件中使用 sass 图像助手确实有效。我们在资产管道中可用的图像,但在文件树中不可见。仍然想让图像和文件可见,但找不到解决方案..

标签: javascript jquery ruby-on-rails-3 gem


【解决方案1】:

试试这个:

module YellowText
  module Rails
    class Engine < ::Rails::Engine
      initializer :append_dependent_assets_path, group: :all do |app|
        app.config.assets.precompile += %w( gem.js gem.css )
      end
    end
  end
end

确保将资产包含在 gem vendor/assets/javascriptsvendor/assets/stylesheets 的这些文件夹中。

看看我的一个简单的 Gems 以供参考:https://github.com/wazery/vider

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多