>백엔드 개발 >Golang >Go HTTP 서버의 파일 이름에서 .html 확장자를 제거하는 방법은 무엇입니까?

Go HTTP 서버의 파일 이름에서 .html 확장자를 제거하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-29 13:59:02403검색

How to Strip the .html Extension from File Names in a Go HTTP Server?

HTTP 서버의 파일에서 .html 확장자를 제거하는 방법

웹 서버를 개발할 때 제공하기 위해 파일 이름에서 .html 확장자를 제거하는 것이 바람직한 경우가 많습니다. 더 깔끔하고 사용자 친화적인 URL 경험을 제공합니다.

Go HTTP 서버에서는 http.FileSystem 인터페이스를 구현하고 이를 사용자 정의 핸들러로 등록하여 이를 달성할 수 있습니다. 다음 코드는 이를 수행하는 방법을 보여줍니다.

<code class="go">package main

import (
    "net/http"
    "os"
)

type HTMLDir struct {
    d http.Dir
}

func main() {
    fs := http.FileServer(HTMLDir{http.Dir("public/")})
    http.Handle("/", http.StripPrefix("/", fs))
    http.ListenAndServe(":8000", nil)
}

func (d HTMLDir) Open(name string) (http.File, error) {
    f, err := d.d.Open(name + ".html")
    if os.IsNotExist(err) {
        // Not found, try with .html
        if f, err := d.d.Open(name); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>

이 사용자 정의 파일 시스템인 HTMLDir은 Open 메서드를 재정의하여 .html 확장자가 있거나 없는 파일을 검색합니다. 파일에 대한 요청이 이루어지면 서버는 먼저 .html 확장자를 가진 파일을 열려고 시도합니다. 찾지 못한 경우 확장자 없이 파일 열기를 시도합니다.

사용자 정의 파일 시스템을 구현하고 이를 처리기로 등록하면 액세스 권한을 계속 제공하면서 파일 이름에서 .html 확장자를 효과적으로 제거할 수 있습니다. 원하는 내용으로.

위 내용은 Go HTTP 서버의 파일 이름에서 .html 확장자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.