কেউ আমাকে একটি ইঙ্গিত দিতে পারে, রুবি দিয়ে কমান্ড লাইন থেকে বর্তমান ডিরেক্টরিটি কীভাবে পরিবেশন করতে পারে? এটি দুর্দান্ত হবে, যদি আমি কিছু সিস্টেম বিস্তৃত কনফিগারেশন (যেমন মাইম-প্রকার) পেতে পারি এবং প্রতিটি ডিরেক্টরি থেকে কেবল এটি চালু করি।
কেউ আমাকে একটি ইঙ্গিত দিতে পারে, রুবি দিয়ে কমান্ড লাইন থেকে বর্তমান ডিরেক্টরিটি কীভাবে পরিবেশন করতে পারে? এটি দুর্দান্ত হবে, যদি আমি কিছু সিস্টেম বিস্তৃত কনফিগারেশন (যেমন মাইম-প্রকার) পেতে পারি এবং প্রতিটি ডিরেক্টরি থেকে কেবল এটি চালু করি।
উত্তর:
সহজতম উপায় (ধন্যবাদ অ্যারন প্যাটারসন / এন0 কাদা):
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
এ দৃষ্টিভঙ্গি দেখানোর জন্য । এটি 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
রুবি ১.৯.২ এবং আরও বেশির সাথে কাজ করে।
require 'webrick'
include WEBrick
s = HTTPServer.new(:Port => 9090, :DocumentRoot => Dir::pwd)
trap("INT"){ s.shutdown }
s.start
রুবি রত্ন পরিবেশন করুন ।
আপনার সিস্টেমে ইনস্টল করতে, চালান gem install serve
।
একটি ডিরেক্টরি পরিবেশন করতে, কেবল ডিরেক্টরিতে সিডি করুন এবং রান করুন serve
।
ডিফল্ট পোর্টটি 4000 It এটি ইআরবি, এইচএএমএল, স্লিম এবং এসএএসএসের মতো জিনিসও সরবরাহ করতে পারে।
আপনি যা চান এটি এটি হতে পারে বা নাও পারে তবে এটি এতটাই দুর্দান্ত যে আমাকে এটি ভাগ করে নিতে হয়েছিল।
আমি অতীতে ফাইল সিস্টেমটি পরিবেশন করতে এটি ব্যবহার করেছি। সম্ভবত আপনি এটিকে সংশোধন করতে পারেন বা কেবল গ্রহণ করতে পারেন যে এটি সমস্ত কিছু করে।
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 এ প্রথমে শীর্ষে 'রুবিজেমস' যুক্ত হয়।
এটি চালানোর পরে ইউআরএল এর মত
http: // লোকালহোস্ট: 4567 / ফাইল_নাম
"./file_name" ফাইলটি সমাধান করা উচিত।
http: // লোকালহোস্ট: 4567 তবে কাজ করবে না, যেহেতু এটি ডিরেক্টরি তালিকা "do" করে না। সেখানে কাজের জন্য https://stackoverflow.com/a/12115019/32453 দেখুন ।
python3 -m http.server
বা আপনি ডিফল্ট পোর্ট 8000 ব্যবহার করতে না চাইলে
python3 -m http.server 3333
বা আপনি যদি কেবল লোকালহোস্ট থেকে সংযোগের অনুমতি দিতে চান
python3 -m http.server --bind 127.0.0.1
দস্তাবেজগুলি দেখুন ।