2010-09-20 14 views
5

Czy ktoś wie, aby zmienić domyślny katalog arkuszy stylów/public/stylesheets na/public/css in rails 3?Zmiana domyślnego katalogu stylów w szynach

znalazłem zmienną config.stylesheets_dir = '/css'

ta nie działa jednak.

Wiem, że mogę zrobić <%= stylesheet_link_tag '/css/mystyle.css' %>, ale jestem ciekawy, czy jest lepszy sposób.

Odpowiedz

3

JavaScript i arkusze stylów ścieżki nie były w pełni dehardcoded w Rails 3. Aby zastąpić te ścieżki trzeba małpa plastra (ze wszystkimi konsekwencjami tego) prywatna metoda:

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 

a dodatkowo ten jeden, jeśli używać go:

def stylesheet_path(source) 
    compute_public_path(source, 'stylesheets', 'css') 
    end 
1

Alternatywnie, oto co robię. Tworzę owijkę asset_tag które mogą być używane tak:

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

I wtedy zdefiniować go w 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 

W ten sposób można zmienić ścieżki aktywów w jakikolwiek sposób chcesz i to zawsze będzie kompatybilny z następnymi.

+2

Nie jestem pewien, dlaczego zostało to odrzucone. Jest to bardziej jednoznaczne rozwiązanie i jest mniej hackowate. – Schrockwell

Powiązane problemy