गोलंग नेट / http पैकेज के साथ यह कार्य बहुत आसान है।
आपको बस इतना करना है:
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
ऐसा इसलिए है क्योंकि सर्वर संपूर्ण URI को फ़ाइल के सापेक्ष पथ के रूप में मानता है।
सौभाग्य से, यह आसानी से अंतर्निहित फ़ंक्शन के साथ हल हो गया है।
/static/नहीं है/static?