গোলং নেট / এইচটিপি প্যাকেজের সাহায্যে সেই কাজটি খুব সহজ।
আপনাকে যা করতে হবে তা হ'ল:
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 থেকে ফাইলগুলি সরবরাহ করা
আপনি যদি ফাইলগুলি পরিবেশন করতে চান তবে ./publicurl এর অধীন ফোল্ডার থেকে বলুন : 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?