Home >Backend Development >Golang >How to serve static folders using Chi Router

How to serve static folders using Chi Router

王林
王林forward
2024-02-09 14:30:101043browse

如何使用 Chi 路由器提供静态文件夹服务

php editor Apple introduces you how to use Chi router to provide static folder services. Chi is a lightweight Go language web framework that provides simple and efficient routing functions. Through Chi, we can easily build a static folder service and display static files directly in the browser. This article will introduce in detail how to configure Chi router and provide static folder services to make your website more efficient and convenient. Let’s find out together!

Question content

I want to provide a folder with the following form:

my-project/
  - public/ <- The folder that I want to serve and also all the subfolders and files
    - css/
      - styles.css

    - js/
      - script.js

  - main.go

I want to use the URL's http://localhost/api/static/css/styles.css and http://localhost/api/static/js/script.jsto access it

So I tried to do the next step:

<code>package main

import (
    "log"
    "net/http"

    "github.com/go-chi/chi/v5"
)

func main() {
    r := chi.NewRouter()

    r.Handle("/api/static/*", http.StripPrefix("/public/", http.FileServer(http.Dir("./public"))))

    if err := http.ListenAndServe(":80", r); err != nil {
        log.Fatal(err)
    }
}
</code>

This doesn't work when I try to access http://localhost/api/static/css/styles.css or http://localhost/api/static/js/script It gives me a HTTP 404 error code.js

Workaround

You have to strip /api/static from the path, so for example , if the request comes from /api/static/css/styles.css, stripping it will leave css/styles.css, which will be in ./public Search below and get ./public/css/styles.css.

The above is the detailed content of How to serve static folders using Chi Router. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete