2012-01-26 9 views
6

मैं अलग-अलग सबडोमेन पर संपत्तियों की सेवा के लिए रेल को कैसे कॉन्फ़िगर कर सकता हूं? मैं मूल रूप से सभी स्थिर फ़ाइलों के लिए सबडोमेन का उपयोग करने के लिए दृश्य/संपत्ति सहायक चाहता हूं, जैसे;'स्थिर' सबडोमेन पर संपत्तियों की सेवा

    example.com/application.css के बजाय
  • -> static.example.com/application.css
  • example.com/application.js के बजाय
  • -> static.example.com/application.js
  • example.com/logo.jpg के बजाय
  • -> static.example.com/logo.jpg
+0

आप हमें बताएँ कि आपको चाहेगा कर सकते हैं: https://github.com/bokmann/font-awesome-rails/wiki/CORS-Cross-Domain-Support

मेरी Gemfile को संशोधित करने के अलावा, मैं भी निम्न कोड config/application.rb में ऊपर की ओर इस गाइड के अनुसार डाल ऐसी चीज करने के लिए? –

+0

मैं स्थिर फाइलों की सेवा के लिए एक अलग मशीन का उपयोग करना चाहता हूं। –

+1

ऐसा करने के बहुत अच्छे कारण हैं; यह एक आम पैटर्न है। – odigity

उत्तर

14

आप asset_host विकल्प के बारे में जानते हैं?

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

यह भी गतिशील नाम करना संभव नहीं है:

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

नहीं, यह कुछ हद तक है कि आप आमतौर पर बड़े पैमाने पर वेब अनुप्रयोगों में करते हैं – phoet

1

तुम भी पार ओरिजिन रिसोर्स शेयरिंग के लिए rack-cors मणि कोशिश कर सकते हैं। https://github.com/cyu/rack-cors

मैंने इस मणि को रेल 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 
संबंधित मुद्दे