2012-01-26 9 views
6

異なるサブドメインのアセットを配信するようにレールを設定するにはどうすればよいですか?私は基本的にビュー/資産ヘルパーがすべての静的ファイルにサブドメインを使用することを望んでいます。代わりにexample.com/application.cssの'static'サブドメインのアセットを処理する

  • - >の代わりにexample.com/application.jsのstatic.example.com/application.css
  • - >が
  • をstatic.example.com/application.js代わりにexample.com/logo.jpgの
  • - > static.example.com/logo.jpg
+0

はあなたが私たちに伝えることができます:私のGemfileを修正するだけでなくhttps://github.com/bokmann/font-awesome-rails/wiki/CORS-Cross-Domain-Support

、私はまた、このガイドによると、トップに向かってconfig/application.rbに次のコードを置きますそのようなことをするには? –

+0

静的ファイルを扱うために別のマシンを使用したいと思います。 –

+1

これには十分な理由があります。それは共通のパターンです。 – odigity

答えて

14

あなたはasset_hostオプションについて知っていますか?

# config/environments/production.rb 
config.action_controller.asset_host = "static.example.com" 

それは動的な名前を行うことも可能です:あなたはまた、クロスオリジンリソース共有のためのrack-cors宝石を試すことができます

ActionController::Base.asset_host = Proc.new { |source| 
    "http://assets#{Digest::MD5.hexdigest(source).to_i(16) % 2 + 1}.example.com" 
} 

http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html

+0

完璧なので、私はそれをしようとしている唯一の人ではありませんでした。 –

+0

いいえ、大規模なWebアプリケーション – phoet

1

https://github.com/cyu/rack-cors

サブドメインの使用を開始した後に私のフォントのすばらしいアイコンがレンダリングされないときに、この宝石をRails 4アプリケーションで使用しました。このウィキは正しい道に私を置く:あなたが望む理由https://github.com/cyu/rack-cors/blob/master/examples/rails4/config/application.rb

config.middleware.insert_before 0, "Rack::Cors", :debug => true, :logger => (-> { Rails.logger }) do 
    allow do 
    origins '*' 

    resource '/cors', 
     :headers => :any, 
     :methods => [:post], 
     :max_age => 0 

    resource '*', 
     :headers => :any, 
     :methods => [:get, :post, :delete, :put, :patch, :options, :head], 
     :max_age => 0 
    end 
end 
関連する問題