Ruby on Rails 5.2 - ActionView::Helpers::AssetUrlHelper

मॉड्यूल ActionView :: सहायकों :: AssetUrlHelper




ruby

मॉड्यूल ActionView :: सहायकों :: AssetUrlHelper

यह मॉड्यूल एसेट पथ और URL उत्पन्न करने के तरीके प्रदान करता है।

image_path("rails.png")
# => "/assets/rails.png"

image_url("rails.png")
# => "http://www.example.com/assets/rails.png"

एसेट मेजबानों का उपयोग करना

डिफ़ॉल्ट रूप से, इन संपत्तियों को सार्वजनिक फ़ोल्डर में वर्तमान होस्ट पर लिंक से लिंक किया जाता है, लेकिन आप अनुप्रयोग कॉन्फ़िगरेशन में ActionController::Base.asset_host सेट ActionController::Base.asset_host आमतौर पर config/environments/production.rb में एक समर्पित परिसंपत्ति सर्वर से संपत्ति से लिंक करने के लिए रेल को निर्देशित कर सकते हैं। config/environments/production.rbconfig/environments/production.rb । उदाहरण के लिए, आप अपनी संपत्ति को इस तरह से होस्ट करने के लिए आपकी पर्यावरण-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों या config/application.rb assets.example.com के अंदर आपकी संपत्ति को होस्ट करने के लिए assets.example.com परिभाषित assets.example.com

config.action_controller.asset_host = "assets.example.com"

मददगार इसे ध्यान में रखते हैं:

image_tag("rails.png")
# => <img src="http://assets.example.com/assets/rails.png" />
stylesheet_link_tag("application")
# => <link href="http://assets.example.com/assets/application.css" media="screen" rel="stylesheet" />

ब्राउज़र्स एक ही होस्ट के लिए सीमित संख्या में एक साथ कनेक्शन खोलते हैं। सटीक संख्या ब्राउज़र और संस्करण द्वारा भिन्न होती है। इस सीमा के शुरू होने से पहले कुछ परिसंपत्तियों के डाउनलोड के लिए पिछली परिसंपत्तियों के खत्म होने का इंतजार करना पड़ सकता है। आप चार होस्टों के अनुरोधों को वितरित करने के लिए asset_host में %d वाइल्डकार्ड का उपयोग कर सकते हैं। उदाहरण के लिए, assets%d.example.com , "assets0.example.com", ..., "wealth3.example.com" पर परिसंपत्तियों के अनुरोध को फैलाएगी।

image_tag("rails.png")
# => <img src="http://assets0.example.com/assets/rails.png" />
stylesheet_link_tag("application")
# => <link href="http://assets2.example.com/assets/application.css" media="screen" rel="stylesheet" />

इससे आपके आवेदन की संपत्ति लोडिंग प्रदर्शन में सुधार हो सकता है। यह अतिरिक्त कनेक्शन ओवरहेड (डीएनएस, एसएसएल) का संयोजन भी संभव है और समग्र ब्राउज़र कनेक्शन की सीमाएं इस समाधान में धीमी हो सकती हैं। आपको इस परिवर्तन से पहले और बाद में दोनों लक्षित ब्राउज़रों में अपने वास्तविक प्रदर्शन को मापना सुनिश्चित करना चाहिए।

संबंधित मेजबानों को लागू करने के लिए आप या तो चार वास्तविक मेजबानों को सेटअप कर सकते हैं या वाइल्डकार्ड डीएनएस का उपयोग कर वाइल्डकार्ड को सिंगल एसेट होस्ट में बदल सकते हैं। आप अपने ISP से अपने DNS CNAME रिकॉर्ड सेट करने के बारे में अधिक पढ़ सकते हैं।

नोट: यह विशुद्ध रूप से एक ब्राउज़र प्रदर्शन अनुकूलन है और सर्वर लोड संतुलन के लिए नहीं है। कनेक्शन सीमा डेटा के लिए www.die.net/musings/page_load_time / पृष्ठभूमि और www.browserscope.org/?category=network देखें।

वैकल्पिक रूप से, आप एसेट होस्ट पर अधिक नियंत्रण को asset_host पर सेट asset_host इस तरह से खरीद सकते हैं:

ActionController::Base.asset_host = Proc.new { |source|
  "http://assets#{Digest::MD5.hexdigest(source).to_i(16) % 2 + 1}.example.com"
}
image_tag("rails.png")
# => <img src="http://assets1.example.com/assets/rails.png" />
stylesheet_link_tag("application")
# => <link href="http://assets2.example.com/assets/application.css" media="screen" rel="stylesheet" />

ऊपर दिया गया उदाहरण " संपत्ति 1.example.com " और " संपत्ति 2.example.com " उत्पन्न करता है। यह विकल्प उदाहरण के लिए उपयोगी है यदि आपको चार से कम मेजबानों, कस्टम होस्ट नामों आदि की आवश्यकता है

जैसा कि आप देखते हैं कि खरीद एक source पैरामीटर लेता है। यह संपत्ति के पूर्ण पथ के साथ एक स्ट्रिंग है, उदाहरण के लिए "/assets/rails.png"।

 ActionController::Base.asset_host = Proc.new { |source|
   if source.ends_with?('.css')
     "http://stylesheets.example.com"
   else
     "http://assets.example.com"
   end
 }
image_tag("rails.png")
# => <img src="http://assets.example.com/assets/rails.png" />
stylesheet_link_tag("application")
# => <link href="http://stylesheets.example.com/assets/application.css" media="screen" rel="stylesheet" />

वैकल्पिक रूप से आप दूसरे पैरामीटर के लिए request कर सकते हैं। SSL- संरक्षित पृष्ठ से संपत्ति की सेवा के लिए यह विशेष रूप से उपयोगी है। नीचे दिया गया उदाहरण HTTPS कनेक्शन के लिए परिसंपत्ति की मेजबानी को अक्षम करता है, जबकि अभी भी परिसंपत्ति मेजबानों से सादे HTTP अनुरोधों के लिए संपत्ति भेज रहा है। यदि आपके पास प्रत्येक एसेट होस्ट के लिए SSL प्रमाणपत्र नहीं है, तो यह तकनीक आपको मिश्रित मीडिया के बारे में क्लाइंट में चेतावनी से बचने की अनुमति देती है। ध्यान दें कि request पैरामीटर की आपूर्ति नहीं की जा सकती है, उदाहरण के लिए जब परिसंपत्तियां एक रेक कार्य के माध्यम से पूर्व निर्धारित की जाती हैं। एक Proc बजाय एक Proc का उपयोग करना सुनिश्चित करें, क्योंकि एक Proc लापता मापदंडों की अनुमति देता है और उन्हें nil सेट करता है।

config.action_controller.asset_host = Proc.new { |source, request|
  if request && request.ssl?
    "#{request.protocol}#{request.host_with_port}"
  else
    "#{request.protocol}assets.example.com"
  end
}

आप एक कस्टम एसेट होस्ट ऑब्जेक्ट भी लागू कर सकते हैं जो call करने के लिए प्रतिक्रिया करता है और खरीद की तरह एक या दो पैरामीटर लेता है।

config.action_controller.asset_host = AssetHostingWithMinimumSsl.new(
  "http://asset%d.example.com", "https://asset1.example.com"
)

स्थिरांक

ASSET_EXTENSIONS
ASSET_PUBLIC_DIRECTORIES

मैप्स एसेट्स सार्वजनिक निर्देशिका के प्रकार।

URI_REGEXP

सार्वजनिक प्रवृत्ति के तरीके

परिसंपत्ति_पथ (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 183
def asset_path(source, options = {})
  raise ArgumentError, "nil is not a valid asset source" if source.nil?

  source = source.to_s
  return "" if source.blank?
  return source if URI_REGEXP.match?(source)

  tail, source = source[/([\?#].+)$/], source.sub(/([\?#].+)$/, "".freeze)

  if extname = compute_asset_extname(source, options)
    source = "#{source}#{extname}"
  end

  if source[0] != ?/
    if options[:skip_pipeline]
      source = public_compute_asset_path(source, options)
    else
      source = compute_asset_path(source, options)
    end
  end

  relative_url_root = defined?(config.relative_url_root) && config.relative_url_root
  if relative_url_root
    source = File.join(relative_url_root, source) unless source.starts_with?("#{relative_url_root}/")
  end

  if host = compute_asset_host(source, options)
    source = File.join(host, source)
  end

  "#{source}#{tail}"
end

यह सभी संपत्तियों के लिए प्रवेश बिंदु है। एसेट पाइपलाइन (यानी sprockets और sprockets- रेल) ​​का उपयोग करते समय, व्यवहार "बढ़ाया" है। skip_pipeline: true पाइप लाइन को skip_pipeline: true में पास करके बायपास कर सकते हैं skip_pipeline: true विकल्पों के लिए skip_pipeline: true

अन्य सभी परिसंपत्तियाँ * _पथ सहायक इस विधि के माध्यम से प्रतिनिधि देते हैं।

परिसंपत्ति पाइपलाइन के साथ

asset_path को पास किए गए सभी विकल्पों को asset_path लिए asset_path जाएगा जो कि sprockets-rails द्वारा कार्यान्वित किया जाता है।

asset_path("application.js") # => "/assets/application-60aa4fdc5cea14baf5400fba1abf4f2a46a5166bad4772b1effe341570f07de9.js"

परिसंपत्ति पाइपलाइन के बिना ( skip_pipeline: true )

एक type विकल्प स्वीकार करता है जो परिसंपत्ति के विस्तार को निर्दिष्ट कर सकता है। asset_path में पारित स्रोत को सत्यापित करने के लिए कोई त्रुटि जाँच नहीं की जाती है और यह वैध है कि फाइल डिस्क पर मौजूद है।

asset_path("application.js", skip_pipeline: true)                 # => "application.js"
asset_path("filedoesnotexist.png", skip_pipeline: true)           # => "filedoesnotexist.png"
asset_path("application", type: :javascript, skip_pipeline: true) # => "/javascripts/application.js"
asset_path("application", type: :stylesheet, skip_pipeline: true) # => "/stylesheets/application.css"

सभी संपत्तियों पर लागू होने वाले विकल्प

नीचे उन परिदृश्यों को सूचीबद्ध किया गया है, जो एसेट पाइप लाइन का उपयोग कर रहे हैं या नहीं।

  • सभी पूरी तरह से योग्य URL तुरंत लौटा दिए जाते हैं। यह परिसंपत्ति पाइपलाइन और वर्णित अन्य सभी व्यवहार को दरकिनार कर देता है।

    asset_path("http://www.example.com/js/xmlhr.js") # => "http://www.example.com/js/xmlhr.js"
    
  • फ़ॉरवर्ड स्लैश से शुरू होने वाली सभी संपत्तियों को पूर्ण URL माना जाता है और उनका विस्तार नहीं किया जाएगा। यह परिसंपत्ति पाइपलाइन को बायपास करेगा।

    asset_path("/foo.png") # => "/foo.png"
    
  • सभी खाली तारों को तुरंत लौटा दिया जाएगा। यह परिसंपत्ति पाइपलाइन और वर्णित अन्य सभी व्यवहार को दरकिनार कर देता है।

    asset_path("") # => ""
    
  • यदि config.relative_url_root निर्दिष्ट किया गया है, तो सभी संपत्तियों में मूल जड़ होगी।

    Rails.application.config.relative_url_root = "bar"
    asset_path("foo.js", skip_pipeline: true) # => "bar/foo.js"
    
  • एक अलग एसेट होस्ट को config.action_controller.asset_host माध्यम से निर्दिष्ट किया जा सकता है यह आमतौर पर एक सीडीएन के साथ संयोजन में उपयोग किया जाता है।

    Rails.application.config.action_controller.asset_host = "assets.example.com"
    asset_path("foo.js", skip_pipeline: true) # => "http://assets.example.com/foo.js"
    
  • एक्सटेंशन नाम को extname साथ मैन्युअल रूप से निर्दिष्ट किया जा सकता है।

    asset_path("foo", skip_pipeline: true, extname: ".js")     # => "/foo.js"
    asset_path("foo.css", skip_pipeline: true, extname: ".js") # => "/foo.css.js"
    
इसके रूप में भी उपनाम: path_to_asset
एसेट_उर्ल (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 227
def asset_url(source, options = {})
  path_to_asset(source, options.merge(protocol: :request))
end

सार्वजनिक निर्देशिका में किसी संपत्ति के लिए पूर्ण URL की गणना करता है। यह आंतरिक रूप से asset_path का उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

उपलब्ध कराए गए अन्य सभी विकल्प asset_path कॉल के लिए भेजे गए हैं।

asset_url "application.js"                                 # => http://example.com/assets/application.js
asset_url "application.js", host: "http://cdn.example.com" # => http://cdn.example.com/assets/application.js
इसके अलावा उपनाम: url_to_asset
ऑडियो_पथ (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 426
def audio_path(source, options = {})
  path_to_asset(source, { type: :audio }.merge!(options))
end

सार्वजनिक ऑडियो निर्देशिका में ऑडियो परिसंपत्ति के लिए पथ की गणना करता है। डॉक्यूमेंट रूट से पूरा रास्ता गुजर जाएगा। ऑडियो पथ बनाने के लिए आंतरिक रूप से audio_tag द्वारा उपयोग किया audio_tag है।

audio_path("horse")                                            # => /audios/horse
audio_path("horse.wav")                                        # => /audios/horse.wav
audio_path("sounds/horse.wav")                                 # => /audios/sounds/horse.wav
audio_path("/sounds/horse.wav")                                # => /sounds/horse.wav
audio_path("http://www.example.com/sounds/horse.wav")          # => http://www.example.com/sounds/horse.wav
इसके रूप में भी उपनाम: path_to_audio
Audio_url (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 438
def audio_url(source, options = {})
  url_to_asset(source, { type: :audio }.merge!(options))
end

सार्वजनिक ऑडिओ डायरेक्टरी में एक ऑडियो परिसंपत्ति के लिए पूर्ण URL की गणना करता है। यह आंतरिक रूप से audio_path का उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। चूंकि audio_url asset_url पद्धति पर आधारित है, asset_url आप सेट कर सकते हैं: होस्ट विकल्प। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

audio_url "horse.wav", host: "http://stage.example.com" # => http://stage.example.com/audios/horse.wav
इसके रूप में भी उपनाम: url_to_audio
compute_asset_extname (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 239
def compute_asset_extname(source, options = {})
  return if options[:extname] == false
  extname = options[:extname] || ASSET_EXTENSIONS[options[:type]]
  if extname && File.extname(source) != extname
    extname
  else
    nil
  end
end

संपत्ति पथ के लिए संलग्न करने के लिए extname की गणना करें। अगर कुछ नहीं जोड़ा जाना चाहिए, तो रिटर्न nil हो जाता है।

compute_asset_host (स्रोत = "", विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 273
def compute_asset_host(source = "", options = {})
  request = self.request if respond_to?(:request)
  host = options[:host]
  host ||= config.asset_host if defined? config.asset_host

  if host
    if host.respond_to?(:call)
      arity = host.respond_to?(:arity) ? host.arity : host.method(:call).arity
      args = [source]
      args << request if request && (arity > 1 || arity < 0)
      host = host.call(*args)
    elsif host.include?("%d")
      host = host % (Zlib.crc32(source) % 4)
    end
  end

  host ||= request.base_url if request && options[:protocol] == :request
  return unless host

  if URI_REGEXP.match?(host)
    host
  else
    protocol = options[:protocol] || config.default_asset_host_protocol || (request ? :request : :relative)
    case protocol
    when :relative
      "//#{host}"
    when :request
      "#{request.protocol}#{host}"
    else
      "#{protocol}://#{host}"
    end
  end
end

इस स्रोत के लिए एक परिसंपत्ति होस्ट चुनें। यदि कोई होस्ट सेट नहीं है, तो nil रिटर्न देता है, होस्ट यदि कोई वाइल्डकार्ड सेट नहीं है, तो होस्ट 0-3 संख्याओं के साथ प्रक्षेपित होता है यदि इसमें %d (संख्या स्रोत हैश मॉड 4 है), या मान किसी कॉल पर आह्वान से लौटा है कॉल करने के लिए प्रतिक्रिया देने वाली वस्तु (खरीद या अन्यथा)।

compute_asset_path (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 262
def compute_asset_path(source, options = {})
  dir = ASSET_PUBLIC_DIRECTORIES[options[:type]] || ""
  File.join(dir, source)
end

सार्वजनिक निर्देशिका के लिए संपत्ति पथ की गणना करता है। प्लगइन्स और एक्सटेंशन कस्टम एसेट्स को इंगित करने के लिए इस तरीके को ओवरराइड कर सकते हैं या डाइजेस्ट पथ या क्वेरी स्ट्रिंग्स उत्पन्न कर सकते हैं।

इसके रूप में भी उपनाम: public_compute_asset_path
font_path (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 451
def font_path(source, options = {})
  path_to_asset(source, { type: :font }.merge!(options))
end

फ़ॉन्ट परिसंपत्ति के लिए पथ की गणना करता है। डॉक्यूमेंट रूट से पूरा रास्ता गुजर जाएगा।

font_path("font")                                           # => /fonts/font
font_path("font.ttf")                                       # => /fonts/font.ttf
font_path("dir/font.ttf")                                   # => /fonts/dir/font.ttf
font_path("/dir/font.ttf")                                  # => /dir/font.ttf
font_path("http://www.example.com/dir/font.ttf")            # => http://www.example.com/dir/font.ttf
इसके रूप में भी उपनाम: path_to_font
font_url (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 463
def font_url(source, options = {})
  url_to_asset(source, { type: :font }.merge!(options))
end

एक पूर्ण संपत्ति के लिए पूर्ण URL की गणना करता है। यह आंतरिक रूप से font_path का उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। चूंकि font_url asset_url पद्धति पर आधारित है, asset_url आप सेट कर सकते हैं: होस्ट विकल्प। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

font_url "font.ttf", host: "http://stage.example.com" # => http://stage.example.com/fonts/font.ttf
इसके अलावा उपनाम: url_to_font
image_path (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 374
def image_path(source, options = {})
  path_to_asset(source, { type: :image }.merge!(options))
end

एक छवि संपत्ति के लिए पथ की गणना करता है। डॉक्यूमेंट रूट से पूरा रास्ता गुजर जाएगा। छवि पथ बनाने के लिए image_tag द्वारा आंतरिक रूप से उपयोग किया image_tag है:

image_path("edit")                                         # => "/assets/edit"
image_path("edit.png")                                     # => "/assets/edit.png"
image_path("icons/edit.png")                               # => "/assets/icons/edit.png"
image_path("/icons/edit.png")                              # => "/icons/edit.png"
image_path("http://www.example.com/img/edit.png")          # => "http://www.example.com/img/edit.png"

यदि आपके पास एप्लिकेशन संसाधनों के रूप में छवियां हैं, तो यह विधि उनके नामित मार्गों के साथ संघर्ष कर सकती है। इससे बचने के लिए उपनाम path_to_image प्रदान किया गया है। रेल आंतरिक रूप से उपनाम का उपयोग करता है, और प्लगइन लेखकों को ऐसा करने के लिए प्रोत्साहित किया जाता है।

इसके रूप में भी उपनाम: path_to_image
image_url (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 386
def image_url(source, options = {})
  url_to_asset(source, { type: :image }.merge!(options))
end

छवि संपत्ति के लिए पूर्ण URL की गणना करता है। यह आंतरिक रूप से image_path का उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। चूँकि image_url asset_url पद्धति पर आधारित है, asset_url आप सेट कर सकते हैं: होस्ट विकल्प। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

image_url "edit.png", host: "http://stage.example.com" # => http://stage.example.com/assets/edit.png
इसके अलावा उपनाम: url_to_image
javascript_path (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 317
def javascript_path(source, options = {})
  path_to_asset(source, { type: :javascript }.merge!(options))
end

सार्वजनिक जावास्क्रिप्ट निर्देशिका में एक जावास्क्रिप्ट संपत्ति के लिए पथ की गणना करता है। यदि source फ़ाइल नाम का कोई विस्तार नहीं है, तो .js को जोड़ दिया जाएगा (स्पष्ट यूआरआई को छोड़कर) दस्तावेज़ रूट से पूर्ण पथ को पार किया जाएगा। स्क्रिप्ट पथ का निर्माण करने के लिए javascript_include_tag द्वारा आंतरिक रूप से उपयोग किया जाता है।

javascript_path "xmlhr"                              # => /assets/xmlhr.js
javascript_path "dir/xmlhr.js"                       # => /assets/dir/xmlhr.js
javascript_path "/dir/xmlhr"                         # => /dir/xmlhr.js
javascript_path "http://www.example.com/js/xmlhr"    # => http://www.example.com/js/xmlhr
javascript_path "http://www.example.com/js/xmlhr.js" # => http://www.example.com/js/xmlhr.js
इसके रूप में भी उपनाम: path_to_javascript
javascript_url (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 329
def javascript_url(source, options = {})
  url_to_asset(source, { type: :javascript }.merge!(options))
end

सार्वजनिक javascripts निर्देशिका में जावास्क्रिप्ट संपत्ति के लिए पूर्ण URL की गणना करता है। यह javascript_path आंतरिक रूप से उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। चूँकि javascript_url asset_url पद्धति पर आधारित है, asset_url आप सेट कर सकते हैं: होस्ट विकल्प। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

javascript_url "js/xmlhr.js", host: "http://stage.example.com" # => http://stage.example.com/assets/js/xmlhr.js
इसके अलावा उपनाम: url_to_javascript
path_to_asset (स्रोत, विकल्प = {})
इसके लिए उपनाम: asset_path
path_to_audio (स्रोत, विकल्प = {})
इसके लिए उपनाम: audio_path
path_to_font (स्रोत, विकल्प = {})
इसके लिए उपनाम: font_path
path_to_image (स्रोत, विकल्प = {})
इसके लिए उपनाम: image_path
path_to_javascript (स्रोत, विकल्प = {})
इसके लिए उपनाम: javascript_path
path_to_stylesheet (स्रोत, विकल्प = {})
इसके लिए उपनाम: stylesheet_path
path_to_video (स्रोत, विकल्प = {})
अन्य के लिए उपनाम: video_path
public_compute_asset_path (स्रोत, विकल्प = {})
इसके लिए उपनाम: compute_asset_path
स्टाइलशीट_पैथ (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 344
def stylesheet_path(source, options = {})
  path_to_asset(source, { type: :stylesheet }.merge!(options))
end

पब्लिक स्टाइलशीट डायरेक्टरी में स्टाइलशीट एसेट के लिए पथ की गणना करता है। यदि source फ़ाइल नाम का कोई विस्तार नहीं है, तो .cs को जोड़ा जाएगा (स्पष्ट यूआरआई को छोड़कर)। डॉक्यूमेंट रूट से पूरा रास्ता गुजर जाएगा। स्टाइलशीट पथ बनाने के लिए स्टाइलशीट_लिंक_टैग द्वारा आंतरिक रूप से उपयोग किया जाता है।

stylesheet_path "style"                                  # => /assets/style.css
stylesheet_path "dir/style.css"                          # => /assets/dir/style.css
stylesheet_path "/dir/style.css"                         # => /dir/style.css
stylesheet_path "http://www.example.com/css/style"       # => http://www.example.com/css/style
stylesheet_path "http://www.example.com/css/style.css"   # => http://www.example.com/css/style.css
इसके रूप में भी उपनाम: path_to_stylesheet
styleheet_url (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 356
def stylesheet_url(source, options = {})
  url_to_asset(source, { type: :stylesheet }.merge!(options))
end

सार्वजनिक स्टाइलशीट निर्देशिका में एक स्टाइलशीट परिसंपत्ति के लिए पूर्ण URL की गणना करता है। यह आंतरिक रूप से stylesheet_path का उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। चूंकि stylesheet_url asset_url पद्धति पर आधारित है, asset_url आप सेट कर सकते हैं: होस्ट विकल्प। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

stylesheet_url "css/style.css", host: "http://stage.example.com" # => http://stage.example.com/assets/css/style.css
इसके रूप में भी उपनाम: url_to_stylesheet
url_to_asset (स्रोत, विकल्प = {})
इसके लिए उपनाम: asset_url
url_to_audio (स्रोत, विकल्प = {})
इसके लिए उपनाम: audio_url
url_to_font (स्रोत, विकल्प = {})
अन्य के लिए उपनाम: font_url
url_to_image (स्रोत, विकल्प = {})
अन्य के लिए उपनाम: image_url
url_to_javascript (स्रोत, विकल्प = {})
इसके लिए उपनाम: javascript_url
url_to_stylesheet (स्रोत, विकल्प = {})
इसके लिए उपनाम: stylesheet_url
url_to_video (स्रोत, विकल्प = {})
अन्य के लिए उपनाम: video_url
video_path (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 400
def video_path(source, options = {})
  path_to_asset(source, { type: :video }.merge!(options))
end

सार्वजनिक वीडियो निर्देशिका में वीडियो संपत्ति के लिए पथ की गणना करता है। डॉक्यूमेंट रूट से पूरा रास्ता गुजर जाएगा। वीडियो पथ का निर्माण करने के लिए video_tag द्वारा आंतरिक रूप से उपयोग किया video_tag है।

video_path("hd")                                            # => /videos/hd
video_path("hd.avi")                                        # => /videos/hd.avi
video_path("trailers/hd.avi")                               # => /videos/trailers/hd.avi
video_path("/trailers/hd.avi")                              # => /trailers/hd.avi
video_path("http://www.example.com/vid/hd.avi")             # => http://www.example.com/vid/hd.avi
इसके रूप में भी उपनाम: path_to_video
video_url (स्रोत, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/asset_url_helper.rb, line 412
def video_url(source, options = {})
  url_to_asset(source, { type: :video }.merge!(options))
end

सार्वजनिक वीडियो निर्देशिका में वीडियो संपत्ति के लिए पूर्ण URL की गणना करता है। यह आंतरिक रूप से video_path का उपयोग करेगा, इसलिए उनके अधिकांश व्यवहार समान होंगे। चूंकि asset_url आपके द्वारा सेट की गई asset_url विधि पर आधारित है: होस्ट विकल्प। यदि: होस्ट विकल्प सेट है, तो यह वैश्विक config.action_controller.asset_host सेटिंग को ओवरराइट करता है।

video_url "hd.avi", host: "http://stage.example.com" # => http://stage.example.com/videos/hd.avi
इसके अलावा उपनाम: url_to_video