日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編香蕉發(fā)現(xiàn),在使用Go語言開發(fā)Web端應(yīng)用時(shí),有時(shí)會(huì)遇到一個(gè)常見的問題:當(dāng)我們嘗試訪問Web端點(diǎn)時(shí),卻收到一個(gè)404錯(cuò)誤,提示找不到靜態(tài)index.html文件。這個(gè)問題可能會(huì)讓開發(fā)者感到困惑,特別是對(duì)于初學(xué)者來說。那么,我們應(yīng)該如何解決這個(gè)問題呢?接下來,我們將詳細(xì)介紹解決方案,幫助你順利解決這個(gè)問題。

問題內(nèi)容

這是我的代碼:

package main

import (
    "fmt"
    "log"
    "net/http"
)

const customport = "3001"

func main() {
    fileserver := http.fileserver(http.dir("./static"))
    port:= fmt.sprintf(":%s", customport)
    http.handle("/", fileserver)

    fmt.printf("starting front end service on port %s", port)
    err := http.listenandserve(port, nil)
    if err != nil {
        log.panic(err)
    }
}

登錄后復(fù)制

頂級(jí)文件夾是 microservices 并設(shè)置為 go 工作區(qū)。該網(wǎng)絡(luò)服務(wù)將是眾多服務(wù)之一。它位于以下文件夾中:

microservices
 |--frontend
    |--cmd
       |--web
          |--static
             |--index.html
       |--main.go

登錄后復(fù)制

我位于頂級(jí)微服務(wù)文件夾中,我以以下方式啟動(dòng)它:go run ./frontend/cmd/web。它啟動(dòng)正常,沒有錯(cuò)誤。但是當(dāng)我轉(zhuǎn)到 chrome 并輸入 http://localhost:3001 時(shí),我得到 404 頁面未找到。即使 http://localhost:3001/index.html 也會(huì)給出 404 頁面未找到。我剛剛學(xué)習(xí) go,不知道為什么找不到 ./static 文件夾?

解決方法

根據(jù)您的命令,路徑必須是./frontend/cmd/web/static,而不僅僅是./static。那不是便攜式的;路徑隨工作目錄而變化。

考慮嵌入靜態(tài)目錄。否則,您必須使路徑可配置(標(biāo)志、環(huán)境變量等)

嵌入的缺點(diǎn)是您必須在對(duì)靜態(tài)文件進(jìn)行任何更改后重建程序。

您還可以使用混合方法。如果設(shè)置了標(biāo)志(或其他),則使用它從磁盤提供服務(wù),否則使用嵌入式文件系統(tǒng)。該標(biāo)志在開發(fā)過程中很方便,并且嵌入式文件系統(tǒng)使部署變得容易,因?yàn)槟恍鑿?fù)制程序二進(jìn)制文件。

package main

import (
    "embed"
    "flag"
    "io/fs"
    "net/http"
    "os"
)

//go:embed web/static
var embeddedAssets embed.FS

func main() {
    var staticDir string

    flag.StringVar(&staticDir, "static-dir", staticDir, "Path to directory containing static assets. If empty embedded assets are used.")
    flag.Parse()

    var staticFS fs.FS = embeddedAssets
    if staticDir != "" {
        staticFS = os.DirFS(staticDir)
    }

    http.Handle("/", http.FileServer(http.FS(staticFS)))

    // ...
}

登錄后復(fù)制

分享到:
標(biāo)簽:Go語言
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定