2010-09-20 28 views
5

Có ai biết thay đổi thư mục kiểu dáng mặc định/public/stylesheets thành/public/css trong đường ray 3 không?Thay đổi thư mục định kiểu mặc định trong đường ray

Tôi tìm thấy một biến gọi là config.stylesheets_dir = '/css'

này đã không làm việc mặc dù.

Tôi biết tôi có thể làm <%= stylesheet_link_tag '/css/mystyle.css' %> nhưng tôi tò mò nếu có cách nào tốt hơn.

Trả lời

3

javascript và stylesheets đường dẫn không dehardcoded đầy đủ trong Rails 3. Để ghi đè các đường dẫn bạn cần phải vá khỉ (với tất cả hậu quả của việc đó) phương pháp riêng:

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 

và additionaly này nếu bạn sử dụng nó:

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

Hoặc, đây là những gì tôi đang làm. Tôi tạo một wrapper asset_tag có thể được sử dụng như thế này:

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

Và sau đó tôi định nghĩa nó trong 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 

Bằng cách này bạn có thể thay đổi đường dẫn tài sản dưới mọi hình thức mà bạn muốn và nó sẽ luôn luôn tương thích về phía trước.

+2

Tôi không chắc tại sao điều này lại bị giảm giá. Đây là một giải pháp rõ ràng hơn và ít bị hacky hơn. – Schrockwell

Các vấn đề liên quan