গোলং নেট / এইচটিপি প্যাকেজের সাহায্যে সেই কাজটি খুব সহজ।
আপনাকে যা করতে হবে তা হ'ল:
package main
import (
"net/http"
)
func main() {
http.Handle("/", http.FileServer(http.Dir("./static")))
http.ListenAndServe(":3000", nil)
}
ধরে নিচ্ছি যে স্ট্যাটিক ফাইলগুলি static
প্রকল্পের মূল ডিরেক্টরিতে ফোল্ডারে রয়েছে ।
যদি এটি ফোল্ডারে থাকে তবে static
আপনার কাছে index.html
ফাইল কলিং রয়েছে http://localhost:3000/
যা ফলস্বরূপ সমস্ত ফাইলকে তালিকাভুক্ত করার পরিবর্তে সেই সূচক ফাইলটি রেন্ডার করে।
অতিরিক্তভাবে, সেই ফোল্ডারে অন্য কোনও ফাইলকে কল করা (উদাহরণস্বরূপ http://localhost:3000/clients.html
) সেই ফাইলটি প্রদর্শিত হবে, ব্রাউজারটি সঠিকভাবে রেন্ডার করে (কমপক্ষে ক্রোম, ফায়ারফক্স এবং সাফারি :))
আপডেট: "/" এর চেয়ে আলাদা url থেকে ফাইলগুলি সরবরাহ করা
আপনি যদি ফাইলগুলি পরিবেশন করতে চান তবে ./public
url এর অধীন ফোল্ডার থেকে বলুন : localhost:3000/static
আপনাকে অতিরিক্ত ফাংশন ব্যবহার করতে হবে : এর func StripPrefix(prefix string, h Handler) Handler
মতো:
package main
import (
"net/http"
)
func main() {
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./public"))))
http.ListenAndServe(":3000", nil)
}
তার জন্য ধন্যবাদ, আপনার সমস্ত ফাইল ./public
এর অধীনে উপলব্ধlocalhost:3000/static
বিনা http.StripPrefix
ফাংশন , আপনি যদি ফাইলটি অ্যাক্সেস করার চেষ্টা করেন localhost:3000/static/test.html
, সার্ভারটি এটির জন্য সন্ধান করবে./public/static/test.html
কারণ সার্ভারটি পুরো ইউআরআইকে ফাইলের সাথে সম্পর্কিত মনে করে।
ভাগ্যক্রমে, এটি বিল্ট-ইন ফাংশনটির সাথে সহজেই সমাধান হয়ে গেছে।
/static/
না/static
?