2010-09-20 6 views
5

Qualcuno saprebbe modificare la directory del foglio di stile predefinita/public/stylesheets in/public/css in rails 3?Cambia directory di stili di default in binari

ho trovato una variabile chiamata config.stylesheets_dir = '/css'

Ciò non ha funzionato però.

So che posso fare <%= stylesheet_link_tag '/css/mystyle.css' %> ma sono curioso se c'è un modo migliore.

risposta

3

Javascript e fogli di stile i percorsi non sono stati pienamente dehardcoded in Rails 3. Per ignorare questi percorsi è necessario patch di scimmia (con tutte le conseguenze di tale metodo) privato:

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 

e additionaly questo se usalo:

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

In alternativa, ecco cosa sto facendo. Creo un wrapper asset_tag che può essere utilizzato in questo modo:

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

E poi mi definisco nel 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 

In questo modo è possibile modificare i percorsi di attività in qualsiasi modo si desidera e sarà sempre compatibile con il futuro.

+2

Non sono sicuro del motivo per cui questo è stato downvoted. Questa è una soluzione più esplicita ed è meno hacky. – Schrockwell