我的服务器上有几个路由:
router.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{"title": "Главная страница"})
})
router.POST("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{"title": "Главная страница"})
})
router.GET("/users", func(c *gin.Context) {
c.HTML(http.StatusOK, "register.html", gin.H{"title": "Регистрация"})
})
router.POST("/users", server.createUser, func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{"title": "Регистрация"})
})
router.GET("/users/login", func(c *gin.Context) {
c.HTML(http.StatusOK, "auth.html", gin.H{"title": "Авторизация"})
})
router.POST("/users/login", server.loginUser, func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", gin.H{"title": "Главная страница"})
})
当我转到/users url时,一切都很好。但是当我转到/users/login时,它不加载样式。在控制台中,我有以下输出:
[GIN] 2023/03/29 - 20:06:31 | 200 | 4.4518ms | ::1 | GET "/users/login"
[GIN] 2023/03/29 - 20:06:31 | 404 | 0s | ::1 | GET "/users/static/css/styles.css"
[GIN] 2023/03/29 - 20:06:32 | 200 | 123.6236ms | ::1 | GET "/static/css/auth.css"
[GIN] 2023/03/29 - 20:07:04 | 200 | 3.594ms | ::1 | GET "/users"
[GIN] 2023/03/29 - 20:07:04 | 304 | 444.2µs | ::1 | GET "/static/css/register.css"
因此,当我转到/users时,它正确地加载静态:static/css/file.css。但如果我去users/login in加载静态错误的方式:/users/static/css/styles.css。为什么要附加前缀“users/"?
在我的HTML模板中,我有这些链接:
在register.html
中:
<link rel="stylesheet" href="/static/css/register.css">
在auth.html
中:
<link rel="stylesheet" href="/static/css/auth.css">
为什么它以不同的方式加载静态?
1条答案
按热度按时间mwngjboj1#
我已经找到了问题所在。它发生的原因是路线:
users/
和users/login
。当我编辑users/login
-〉login/
时,一切都开始正常工作