ΠΏΡΠΈΠ²Π΅Ρ, Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Π΄ΠΆΠΈΠ½. οΌ© Ρ
ΠΎΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ html-ΡΠ°ΠΉΠ», ΡΡΠΎΡ ΡΠ°ΠΉΠ» (upload.html) ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ js-ΡΠ°ΠΉΠ»Ρ. ΠΠΎ ΠΎΠ½ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π΅ΡΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ js, ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ
ΠΎΡΠΎΡΠΎ. ΠΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½Π΅ ΠΏΠΎΠΌΠΎΡΡ?
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΌΠΎΠΉ ΠΏΠ»ΠΎΡ
ΠΎΠΉ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈΠΉ!
func main(){
router := gin.Default()
router.LoadHTMLGlob("templates/*")
// router.LoadHTMLFiles("templates/upload.html")
router.GET("/index",func(c *gin.Context){
c.HTML(http.StatusOK, "upload.html", gin.H{
"title": "Main website",
})
} )
router.POST("/upload",uploadHandler)
router.Run(":8080")
}
ΠΠ±ΡΡΠ½ΠΎ Π²Ρ Π½Π΅ Β«Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅Β» ΡΠ°ΠΉΠ»Ρ JS, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΠ΅ Π²ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ .js Π² ΠΏΠ°ΠΏΠΊΡ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Β«ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉΒ» Π² Go, ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎ Β«ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉΒ».
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° https://github.com/gin-gonic/contrib/tree/master/static
@robvdl ΡΠΏΠ°ΡΠΈΠ±ΠΎ
@kekemuyu Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» Π²Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ:
package main
import "gopkg.in/gin-gonic/gin.v1"
func main(){
router := gin.Default()
router.Static("/assets", "./assets")
router.LoadHTMLGlob("templates/*")
//router.LoadHTMLFiles("templates/upload.html")
router.GET("/index",func(c *gin.Context){
c.HTML(http.StatusOK, "upload.html", gin.H{
"title": "Main website",
})
} )
router.POST("/upload",uploadHandler)
router.Run(":8080")
}
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ src
Π² HTML, ΡΠΊΠ°Π·Π°Π² ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π½Π° /assets/*
.
ΠΠ°ΠΊΡΡΡΠΈΠ΅.
ΠΡ , Π΄Π°, ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠ½Ρ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· / Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ URL-Π°Π΄ΡΠ΅ΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ / static (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ SPA), ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° Gin Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ httprouter .
Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ router.Static () :)
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
@robvdl ΡΠΏΠ°ΡΠΈΠ±ΠΎ
@kekemuyu Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΠ» Π²Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ:
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅
src
Π² HTML, ΡΠΊΠ°Π·Π°Π² ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π½Π°/assets/*
.ΠΠ°ΠΊΡΡΡΠΈΠ΅.