могу ли я обслуживать активы изнутри драгоценного камня - PullRequest
0 голосов
/ 22 января 2012

Я хотел бы упаковать некоторые общие ресурсы, такие как css, js и значки изображений, в самоцвет для моего личного использования.

Могу ли я использовать активы изнутри драгоценного камня напрямую, или мне нужно, чтобы генератор перенес их в основное приложение?

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Что вам нужно сделать, это:

  • Сделай рейлти:

    module MyGemName
      module Rails
        class Engine < ::Rails::Engine
        end
      end
    end
    
  • Поместите их в каталог, который в противном случае был бы правильным путем к активу, например, lib/assets/stylesheets.

  • Используйте звездочки для включения JavaScript:

    //= require "foobar"
    
  • Используйте sass для включения таблиц стилей:

    @import "foobar";
    
  • Используйте функцию sass image-url, если вы ссылаетесь на изображения внутри таблиц стилей:

    .widget {
      background-image: image-url("widget-icon.png");
    }
    

Каталог ресурсов должен вести себя точно так же, как если бы он находился внутри вашего собственного приложения.

Вы можете найти пример в formalize-rails , в котором есть таблицы стилей, javascript и изображения.

0 голосов
/ 22 января 2012

С помощью Rails 3.2 вы можете создать движок и поместить активы в каталог ресурсов, где они будут автоматически собраны. Однако будьте осторожны, если вы создадите монтируемый движок с помощью генератора, он создаст каталоги с пространством имен под javascripts, изображениями и таблицами стилей. Не помещайте свои вещи в эти подкаталоги, иначе родительское приложение их не найдет. Просто поместите их непосредственно в JavaScript, изображения или таблицы стилей.

...