जवाबों:
सबसे आसान तरीका संभव है (धन्यवाद हारून पैटरसन / n0kada):
ruby -run -e httpd . -p 9090
वैकल्पिक, अधिक जटिल तरीका:
ruby -r webrick -e "s = WEBrick::HTTPServer.new(:Port => 9090, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"
यहां तक कि पहला आदेश याद रखना मुश्किल है, इसलिए मेरे पास सिर्फ यह है .bashrc:
function serve {
port="${1:-3000}"
ruby -run -e httpd . -p $port
}
यह डिफ़ॉल्ट रूप से पोर्ट 3000 पर वर्तमान निर्देशिका परोसता है , लेकिन आप पोर्ट को निर्दिष्ट भी कर सकते हैं:
~ $ cd tmp
~/tmp $ serve # ~/tmp served on port 3000
~/tmp $ cd ../www
~/www $ serve 5000 # ~/www served on port 5000
ruby -run -e httpd . -p 9090पर नज़र ruby-doc.org/stdlib-2.0.0/libdoc/un/rdoc/index.html । यह unमाणिक मानक पुस्तकालय से httpd पद्धति को क्रियान्वित कर रहा है , इस प्रकार संयुक्त राष्ट्र की आवश्यकता है।
ruby -run -e httpd . -p 9090 & यदि आप इसे अग्रभूमि में वापस लाना चाहते हैं, तो उपयोग करें fg।
मैंने कभी भी कुछ भी कॉम्पैक्ट के रूप में नहीं देखा है
python3 -m http.server
आप वैकल्पिक रूप से अंत में एक पोर्ट संख्या जोड़ सकते हैं:
python3 -m http.server 9000
जैसा कि आरोन पैटरसन ने ट्वीट किया था कि आज आप यह कर सकते हैं:
ruby -run -e httpd . -p 5000
और आप बाइंड एड्रेस को भी जोड़कर सेट कर सकते हैं -b 127.0.0.1
रूबी 1.9.2 और उससे अधिक के साथ काम करता है।
require 'webrick'
include WEBrick
s = HTTPServer.new(:Port => 9090, :DocumentRoot => Dir::pwd)
trap("INT"){ s.shutdown }
s.start
यह वह है जो आप चाहते हैं या नहीं भी हो सकते हैं लेकिन यह इतना अच्छा है कि मुझे इसे साझा करना होगा।
मैंने इसका उपयोग पूर्व में फाइल सिस्टम की सेवा के लिए किया है। शायद आप इसे संशोधित कर सकते हैं या बस स्वीकार कर सकते हैं कि यह सब कुछ कार्य करता है।
ruby -rsocket -e 's=TCPServer.new(5**5);loop{_=s.accept;_<<"HTTP/1.0 200 OK\r\n\r\n#{File.read(_.gets.split[1])rescue nil}";_.close}'
मैंने इसे यहां पाया
क्रिस
आप sinatraमणि का उपयोग कर सकते हैं , हालांकि यह आपके लिए कोई निर्देशिका सूचीकरण नहीं करता है, यह फाइलों का कार्य करता है:
require 'sinatra' # gem
set :public_folder, '.'
फिर इसे एक फाइल के रूप में चलाएं, अगर 1.8 में पहले शीर्ष पर 'रूबीज' की आवश्यकता हो।
इसे चलाने के बाद फिर url की तरह
http: // localhost: 4567 / file_name
"./file_name" फ़ाइल में हल करना चाहिए।
http: // localhost: 4567 हालांकि काम नहीं करेगा, क्योंकि यह निर्देशिका लिस्टिंग को "नहीं" करता है। वहां वर्कअराउंड के लिए https://stackoverflow.com/a/12115019/32453 देखें ।