Изменить каталог стилей по умолчанию в рельсах - PullRequest
5 голосов
/ 20 сентября 2010

Кто-нибудь знает, чтобы изменить каталог таблиц стилей по умолчанию / public / stylesheets на / public / css в rails 3?

Я нашел переменную с именем config.stylesheets_dir = '/css'

Это не сработало.

Я знаю, что могу сделать <%= stylesheet_link_tag '/css/mystyle.css' %>, но мне любопытно, есть ли лучший способ.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2010

Пути в Javascript и таблицах стилей не были полностью дехардкодированы в Rails 3. Чтобы переопределить эти пути, вам нужно установить патч обезьяны (со всеми вытекающими отсюда последствиями). приватный метод:

module ActionView::Helpers::AssetTagHelper
    private
      def compute_stylesheet_paths(*args)
          expand_stylesheet_sources(*args).collect { |source| compute_public_path(source, 'stylesheets', 'css', false) }
      end
end

и дополнительно этот, если вы используете его:

  def stylesheet_path(source)
    compute_public_path(source, 'stylesheets', 'css')
  end
1 голос
/ 03 августа 2012

Или вот что я делаю.Я создаю оболочку asset_tag, которую можно использовать следующим образом:

<%= asset_tag 'mystyle', :css %>
<%= asset_tag 'mycode', :js %>

И затем я определяю ее в application_helper:

module ApplicationHelper

  # here is where you define your paths
  # in this case, paths will be '/css/mystyle.css' and '/js/mycode.js'
  def asset_path(asset, type)
    return "/css/#{asset}.css" if type == :css
    return "/js/#{asset}.js" if type == :js
  end

  def asset_tag(asset, type)
    return stylesheet_link_tag asset_path(asset, type) if type == :css
    return javascript_include_tag asset_path(asset, type) if type == :js
  end

end

Таким образом, вы можете изменить активпути любым удобным для вас способом, и он всегда будет совместим с последующими.

...