小编Sea*_*ber的帖子

如何基于rails 3.1中的通配符子域向Sprockets添加资产搜索路径?

滑轨资产管道指南将指导您使用config.assets.pathsconfig/application.rb,但我没有在这一点上访问请求的子域.

我希望能够根据请求的子域前置一个额外的路径(仅针对当前请求).

我的申请具体细节

这是一个基本的CMS应用程序.根domain.com主机使用标准控制器/视图呈现和默认资产路径处理管理部分.

请求以此subdomain.domain.com为基础呈现网站subdomain.它只调用prepend_view_patha before_filterRails.root.join('vendor/sites/[subdomain]/templates')为当前请求添加 .

我希望能够Rails.root.join('vendor/sites/[subdomain]/assets')在请求主机时添加到Sprockets搜索路径[subdomain].domain.com.

编辑

我最后只是在mixin中删除了Sprockets::Environment覆盖调用方法:

module SiteAssetsResolver
  def call(env)
    begin
      # prepend path based on subdomain (from env)
      super # Sprockets::Server#call
    ensure
      # remove path based on subdomain
    end
  end
end

MyApp::Application.assets.extend(SiteAssetsResolver)
Run Code Online (Sandbox Code Playgroud)

assets ruby-on-rails ruby-on-rails-3.1 sprockets asset-pipeline

13
推荐指数
1
解决办法
3114
查看次数