2012-05-14 47 views
0

有沒有辦法在erg之外使用rails資產管道?當我撥打stylesheet_link_tag()時,我得到一個正常的/stylesheets/鏈接,而不是像我期望的/assets/。我懷疑這個問題寶石只需要在資產管道中註冊一些東西,但我不確定是什麼。在ERB外使用資產管道

我用這種寶石:https://github.com/agoragames/stache

我正在使用的代碼:

module Layouts            
    class Application < ::Stache::View       

    include ActionView::Helpers::AssetTagHelper::StylesheetTagHelpers             

    def title            
     'foobar'            
    end              

    def stylesheets           
     [              
     [stylesheet_link_tag('reset', :media => 'all')]  
     ]              
    end              

    def javascripts           
    end              
    end              
end               

它的產生:

<link href="/stylesheets/reset.css" media="all" rel="stylesheet" type="text/css" /> 

應該生成(反應都是在ERB模板):

<link href="/assets/reset.css?body=1" media="all" rel="stylesheet" type="text/css" /> 

使用導軌3.2.3。

+0

你正在使用哪個版本?什麼是你到樣式表的完整鏈接?你有什麼在你的application.js –

+0

問題更新。 – zombor

回答

1

適當的解決方案是去除:在頂部

include ActionView::Helpers::AssetTagHelper::StylesheetTagHelpers

線。

+0

如果他刪除,那麼他將無法使用stylesheet_link_tag,不是? –

+0

我原本以爲這也是,但它的工作原理。我回答了我自己的問題,順便說一句:) – zombor

+0

檢查它被接受(綠色複選標記)很高興知道你得到它排序。您可能想要接受以前的所有問題,以便將來從社區獲得更多答案。 –

1

嘗試

def stylesheets           
    [              
    [stylesheet_link_tag("#{ActionController::Base.helpers.asset_path('reset.css')}", :media => 'all')] 
    ]              
end 

也讀https://stackoverflow.com/a/9341764/643500

+0

這工作。有沒有辦法設置這個「全局」,這樣我就不必每次都執行'ActionController :: Base.helpers.asset_path()'。 – zombor

+0

定義一個初始化函數並在那裏設置它然後使用它。不要忘記將問題標記爲已接受。 –

+0

看到我的答案。這讓我可以使用「正常」的助手。 – zombor