2012-05-14 126 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