2017-04-25 15 views
6

में सीएसएस और जे एस की सेवा कर रहा GoLang ट्यूटोरियल here पालन किया, लेकिन जो भी कारण मैं मुसीबत हो रहा है CSS और JS सेवा करने के लिए एप्लिकेशन प्राप्त करने के लिए। यदि मैं जाने के बिना अपना स्थिर पृष्ठ चलाता हूं तो पेज सीएसएस ठीक काम करता है। जब मैं दूसरी तरफ जाने वाला सर्वर चलाता हूं तो सीएसएस बस काम नहीं करता है।मैं कैसे जाओ लैंग

<link rel="stylesheet" href="../assets/css/bootstrap.min.css"> 
 
<link rel="stylesheet" href="../assets/css/bootstrap-theme.min.css"> 
 
<link rel="stylesheet" href="../assets/css/custom.css"> 
 

 
. 
 
. 
 
. 
 
     
 
then under the body tag 
 

 
<script src="../assets/js/jquery.min.js"></script> 
 
<script src="../assets/js/bootstrap.min.js"></script> 
 

 
. 
 
. 
 
.

मेरे फ़ाइल पेड़ इस

enter image description here

कैसे मैं अपने जाने आवेदन मिलता है जैसा दिखता है:

यहाँ मेरी एचटीएमएल तरह की तरह लग रहा है क्या है मुझे आवश्यक सीएसएस और जावास्क्रिप्ट की सेवा है?

समस्या के बाद से हल किया गया है, यहाँ मुख्य काम कर रहा है:

func main() { 
    http.HandleFunc("/view/", makeHandler(viewHandler)) 
    http.HandleFunc("/edit/", makeHandler(editHandler)) 
    http.HandleFunc("/save/", makeHandler(saveHandler)) 
    http.HandleFunc("/index/", makeHandler(indexHandler)) 


    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) 

    http.ListenAndServe(":8080", nil) 
} 

यहाँ संचालकों का एक उदाहरण मैं

func indexHandler(w http.ResponseWriter, r *http.Request, title string) { 
    p := &Page{Title: title} 
    err := templates.ExecuteTemplate(w, "index.html", p) 
    if err != nil { 
     http.Error(w, err.Error(), http.StatusInternalServerError) 
    } 
} 
+0

संभावित डुप्लिकेट [गो टेम्पलेट में जेएस फ़ाइल शामिल करें] (http://stackoverflow.com/questions/28899675/include-js-file-in-go-template/28899786#28899786); और [golang वेबसर्वर जहां फाइल सिस्टम पर वेबसाइट नक्शे की जड़ करता है के साथ?] (http://stackoverflow.com/questions/28745161/with-golang-webserver-where-does-the-root-of-the-website -मैप-ऑन-द-फाइल सिस्टम/28745280 # 28745280) – icza

उत्तर

9

उपयोग कर रहा हूँ आप की तरह स्थिर फ़ाइलों की एक निर्देशिका सेवा कर सकते हैं है इसलिए:

http.Handle("/", http.FileServer(http.Dir("css/"))) 

पर अपने css निर्देशिका में काम करेगा। बेशक आप जो भी रास्ता चुनते हैं उस पर आप जो भी निर्देशिका कर सकते हैं उसकी सेवा कर सकते हैं।

मैं शायद लगता है कि स्थिर पथ अन्य पथ के रास्ते में नहीं है बनाने के लिए और कुछ इस तरह का प्रयोग करेंगे।

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) 

अपनी परियोजना में निर्देशिका static में अपने js और css दोनों लगाकर। इसके बाद यह डोमेन.com/static/css/filename.css और domain.com/static/js/filename.js

StripPrefix विधि उपसर्ग को हटा देता है, इसलिए यह खोज करने की कोशिश नहीं करता है। static निर्देशिका में static/css/filename.css के लिए, जो निश्चित रूप से, यह नहीं मिलेगा। यह static निर्देशिका में css/filename.css के लिए देखेगा, जो सही होगा।

+0

मुझे कोड की उस पंक्ति को कहां रखना चाहिए? मुख्य रूप से सभी फ़ंक्शन हैंडलर या मेरे फ़ंक्शन में जो इंडेक्स टेम्पलेट की सेवा करता है उदाहरण के लिए – bmacrevolution

+0

किसी भी समय। आमतौर पर 'http.ListenAndServe' से पहले। तो शायद आपके मुख्य में। – RayfenWindspear

+0

ऐसा करने से ऐसा लगता है कि ऐसा नहीं लगता है। मैं कुछ अद्यतन कोड – bmacrevolution

संबंधित मुद्दे