Golang Как убрать последнюю косую черту на статической порции - PullRequest
0 голосов
/ 29 октября 2019

Я хочу удалить последнюю косую черту в пути, например: localhost: 8080 / Login / -> localhost: 8080 / Login . В коде я использую / login вместо / login / , но css и js не работают, пожалуйста, помогите!

Это мой код:

Файл Go:

func main() {
    fileServer := http.FileServer(http.Dir("pages"))
    //http.Handle("/Login/", http.StripPrefix("/Login/", fileServer))
    http.Handle("/Login", http.StripPrefix("/Login", fileServer))

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

Файл HTTP:

<link href="/css/bootstrap/bootstrap-4.3.1.css" rel="stylesheet" />
<script src="/js/bootstrap/bootstrap-4.3.1.js"></script>

Ответы [ 3 ]

0 голосов
/ 29 октября 2019

Вы в основном монтируете свой интерфейс на "/Login".

Но ваши js и css запрашиваются с" / "

Так что, конечно, они не будут загружены.

Вам необходимо:

  1. Изменить ссылки css и js на "/ Login / js / ...." и "/ Login / css / .. . "

    Это не похоже на то, что вы на самом деле хотите сделать, хотя

  2. Или установите внешний интерфейс в" / "

    http.Handle("/", fileServer)
    
0 голосов
/ 29 октября 2019

user10753492 правильно. Поскольку вы используете корневые пути для файлов CSS и JS, косая черта не имеет значения в отношении запросов к файлам CSS и JS.

Что касается перенаправления в / Login /: это поведение документировано вместе с инструкциями о том, как предотвратить это :

Если поддерево было зарегистрировано и получен запрос с именем корня поддерева без его косой черты, ServeMux перенаправляет этозапрос к корню поддерева (добавление завершающего слеша). Это поведение может быть переопределено отдельной регистрацией пути без косой черты.

Так что, если вы не хотите перенаправления, зарегистрируйте один и тот же обработчик для обоих / Login и /Login/.

0 голосов
/ 29 октября 2019
package main
import (
    "fmt"
)
func main() {
  var s string = "localhost:8080/Login/"
  fmt.Println(s)
  for _,i := range s{
    fmt.Println("hi,test data ->",string(i))
  }
  fmt.Println("This string len is ",len(s))
  fmt.Println("You want ",string(s[0:len(s)-1]))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...