Ruby on Rails 5.2 - ActionDispatch::Static

वर्ग ActionDispatch :: स्टेटिक




ruby

वर्ग ActionDispatch :: स्टेटिक

जनक:
Object

यह मिडिलवेयर प्रतिक्रिया में डिस्क से फ़ाइल के शरीर की सामग्री को वापस करने का प्रयास करेगा। यदि डिस्क पर कोई फ़ाइल नहीं मिली है, तो अनुरोध को एप्लिकेशन स्टैक पर भेजा जाएगा। यह मिडिलवेयर आमतौर पर सर्वर के public/ निर्देशिका से संपत्ति की सेवा के लिए आरंभिक होता है।

यह मिडलवेयर यह सुनिश्चित करने के लिए पथ को सत्यापित करता है कि केवल रूट डायरेक्टरी में रहने वाली फाइलों को ही प्रस्तुत किया जा सकता है। एक अनुरोध इस मिडलवेयर का उपयोग करके डायरेक्टरी ट्रैवर्सल का उत्पादन नहीं कर सकता है। केवल 'GET' और 'HEAD' अनुरोधों के परिणामस्वरूप फ़ाइल लौटा दी जाएगी।

पब्लिक क्लास के तरीके

नया (ऐप, पाथ, इंडेक्स: "इंडेक्स", हेडर: {}) स्रोत दिखाएं
# File actionpack/lib/action_dispatch/middleware/static.rb, line 111
def initialize(app, path, index: "index", headers: {})
  @app = app
  @file_handler = FileHandler.new(path, index: index, headers: headers)
end

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

# File actionpack/lib/action_dispatch/middleware/static.rb, line 116
def call(env)
  req = Rack::Request.new env

  if req.get? || req.head?
    path = req.path_info.chomp("/".freeze)
    if match = @file_handler.match?(path)
      req.path_info = match
      return @file_handler.serve(req)
    end
  end

  @app.call(req.env)
end